再起呼び出しを使って1 ~ nの総和を計算する
auです。
今回は再起呼び出しを使って1~nの総和を計算するプログラムを組みました。
#include <stdio.h> int sum_total(int n) { if (n == 1) { return 1; } return n + sum_total(n - 1); } int main(void) { int n = 0; int result = 0; printf("数字を入力: "); scanf("%d", &n); result = sum_total(n); printf("1 ~ %dの総和: %d\n", n, result); return 0; } // 実行結果 数字を入力: 10 1 ~ 10の総和: 55
再起呼び出しをしないで実行するバージョンも作成しました。
#include <stdio.h> int sum_total(int n) { int i = 0; for (; 0 < n; ) { i += n; n--; } return i; } int main(void) { int n = 0; int result = 0; printf("数字を入力: "); scanf("%d", &n); result = sum_total(n); printf("1 ~ %dの総和: %d\n", n, result); return 0; } // 実行結果 数字を入力: 10 1 ~ 10の総和: 55