第20講 n進数演算−−−引き算
第8話 引き算プログラム解説その3
を実現するプログラムエンジン核心部分再掲
For i = 0 To mx - 1
If d(i) < e(i) Then
For j = i + 1 To mx - 1
If d(j) > 0 Then
d(j) = d(j) - 1
Exit For
Else
d(j) = n - 1
End If
Next
d(i) = d(i) + n
End If
c(i) = d(i) - e(i)
Next
参考ダウンロード添付ファイル
解説その3
i = 0 のとき、
c(0) = 6 d(1) = 6 d(2) = 3
↓
が実現できました。
2巡目のループに入ります。
i = 1 のとき、
d(1) = 6 e(1) = 4
d(i) ≧ e(i)ですから、
c(i) = d(i) - e(i)
すなわち
c(1) = d(1) - e(1)
が実行され、
c(1) = 6 -4 = 2
となります。
これで、
↓
までが実現できて3巡目に入ります。
i = 2 のとき、
d(2) = 3 e(2) = 6
すなわち、d(i) < e(i)で、
For j = i + 1 To mx - 1
If d(j) > 0 Then
d(j) = d(j) - 1
Exit For
Else
d(j) = n - 1
End If
Next
d(i) = d(i) + n
と
c(i) = d(i) - e(i)
の両方が実行されます。
For j = i + 1 To mx - 1の
1回目のループは
If d(3) > 0 Then
d(3) = d(3) - 1
Exit For
Else
d(3) = 6
End If
ですが、
d(3) = 0
ですから、Else側が実行されて
d(3) = 6
となります。
2回目のループは
If d(4) > 0 Then
d(4) = d(4) - 1
Exit For
Else
d(4) = 6
End If
d(4) = 0 で再びElse側が実行されて
d(4) = 6
となります。
3回目のループは
If d(5) > 0 Then
d(5) = d(5) - 1
Exit For
Else
d(5) = 6
End If
d(5) = 6
ですから、肯定側が実行されて
d(5) = d(5) - 1
すなわち、
d(5) = 5 - 1 = 4
Exit For
によって、強制的に
For j = i + 1 To mx - 1
If d(j) > 0 Then
d(j) = d(j) - 1
Exit For
Else
d(j) = n - 1
End If
Next
が終了させられて、
d(i) = d(i) + n
から、
d(2) = d(2) + 7 = 3 + 7 = 10
となります。
最後に、
c(i) = d(i) - e(i)
から
c(2) = d(2) - e(2) = 10 - 6 = 4
となります。以上から、
↓
c(2) = 4 d(3) = 6 d(4) = 6 d(5) = 4
が実現できています。
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門
数独のシンプルな解き方・簡単な解法の研究
vc++講義へ
excel 2013 2010 2007 vba入門へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座へ
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座へ
専門用語なしの C言語 C++ 入門(Visual C++ 2010で学ぶ C言語 C++ 入門)
専門用語なしの excel vba マクロ 入門 2013 2010 2007 対応講義 第1部
eclipse java 入門へ
excel 2016 vba 入門へ
小学生からエンジニアまでのRuby入門へ
本サイトトップへ