マルチスレッド版数独自動生成ソフトC++コードを題材とする超初心者のためのVisual Studio C++講義
第3章 for文(繰り返し処理)
第6話 掛け算を加える
掛け算() という関数を作って実行画面が

(
さぁ、探検・冒険の始まりだ!
1 + 2 + ・・・ + 10000 = 50005000
1 × 2 × ・・・ × 15 = 2004310016
)
となるコード例
#include<iostream>//インクルードファイルiostreamの読み込み
#include<conio.h>//while(!_kbhit());を使うためのお呪い
#include <iomanip> //setprecisionを使えるように組み込む
#include<string> //文字列変数を使えるようにするために組み込む
using namespace std;//coutを使うときに必要なお呪い
int 足し算();//1 + 2 + ・・・ + 100 などを計算する関数
int 掛け算();//1 × 2 × ・・・ × 15 などを計算する関数
int main() {//私は社長だ。
cout << "さぁ、探検・冒険の始まりだ!" << endl << endl;
cout << " 1 + 2 + ・・・ + 10000 = " << 足し算() <<
endl << endl;
cout << " 1 × 2 × ・・・ × 15 = " << 掛け算() <<
endl << endl;
while (!_kbhit());//待機させるための命令
return(0);//int main()終わるためのお呪い
}
int 足し算() {
//1 + 2 + ・・・ + 10000 などを計算する関数
int 和 = 0;//和を整数型と定義して0に初期化
for(int i = 0 ; i < 10001; i = i + 1){
和 = 和 + i;
}
return(和);//何かを返さないとエラーしますのでとりあえず0を返していますが、後に変更されます。
}
int 掛け算() {
//1 × 2 × ・・・ × 15 などを計算する関数
int 積 = 1;//掛け算は1から始める
for (int i = 2; i < 16; i++) {
積 *= i;
}
return(積);
}
ー*-*-*-*-*-*-*-*-*-*-*-*-*-*-*ー
第7話への課題
int 等差数列の和() という関数を作って実行画面が

(
さぁ、探検・冒険の始まりだ!
1 + 2 + ・・・ + 10000 = 50005000
1 × 2 × ・・・ × 15 = 2004310016
2 + 5 + ・・・ + 32 = 187
)
となるようにしてください。
この課題を成就するためには {2,5,8,11,14,17,20,23,26,29,32} を生成させなければなりません。
この数列は、 2,2 + 3,2 + 3 + 3,2 + 3 + 3 +3 ,・・・,2 + 3 + 3 +3 +3 + 3 + 3 + 3 + 3 + 3 + 3 という仕組みになります。
{2,5,8,11,14,17,20,23,26,29,32} を
{a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11}とあらわすとなると、
a1 = 2 = 2 + 3 * 0
a2 = 2 + 3 = 2 + 3 * 1
a3 = 2 + 3 + 3 = 2 + 3 * 2
a4 = 2 + 3 + 3 + 3 = 2 + 3 * 3
・
・
・
an = 2 + 3 * ( n - 1 )
となります。
これをヒントに等差数列の和 2 + 5 + 8 + ・・・ +32 の答えを生成してください。
ー*-*-*-*-*-*-*-*-*-*-*-*-*-*-*ー
第3章第5話へ 第3章第7話へ
本講義トップへ