マルチスレッド版数独自動生成ソフトC++コードを題材とする超初心者のためのVisual Studio C++講義
第9章 関数の再帰的使用
第13話 1 + 2 + 3 + ・・・ + n を関数の再帰的利用で計算する!

(
1から10までの和は55です。
)
を実現するプログラムコード例
#include<iostream>//インクルードファイルiostreamの読み込み
#include<conio.h>//while(!_kbhit());を使うためのお呪い
#include<string> //文字列変数を使えるようにするために組み込む
#include <iomanip> //setprecisionを使えるように組み込む
#include <cmath>//powなどを使うときに必要
#include <ctime>//time()(←現時刻発生する関数)を使うために必要
using namespace std;//coutを使うときに必要なお呪い
const int n = 10;//具体的な数字を使うのではなく、 n を使うと汎用性のあるプログラムになる!
void f(int s);//順列生成関数←引数名をgからsに変更(2026年3月19日)
int a[25]; //将来5次魔方陣まで生成できるように25に変更
int 合計 = 0; //gは合計を計算するための変数
int main() {
f(0);
cout << "1から" << n << "までの和は"
<< 合計 << "です。" << endl;
while (!_kbhit());//待機させるための命令
return(0);
}
void f(int s) {
合計 = 合計 + s + 1;
if (s + 1 < n)f(s + 1);
}
n = 100 の実験結果

(
1から100までの和は5050です。
)
n = 1000 の実験結果

(
1から1000までの和は500500です。
)
n次順列のコードに比べるとはるかに簡単です。
次は n! を計算させることを考えましょう。
階乗の計算あっという間に大きくなってしまうので、
n は15以下ぐらいにしてください。
int 積 = 1; //gは合計を計算するための変数
とすることも忘れないようにしましょう。
(
1から10までの積は3628800です。
)