マルチスレッド版数独自動生成ソフト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話へ

本講義トップへ