R53 0,30 総和の計算
考察
総和の計算。これで簡単に総和が求められちゃうなんて、コンピュータってすごい!と実感。
問題
数字Nを入力し、1からNまでの総和を求める。関数を利用し再帰処理を行う。
表示例
------------総和を求める関数----------
数字を入力してください---->10
1~10までの総和は55です。
--------------------------------------
考え方
R052のプログラムを一部変更する。
(1)変更点
①関数名をkanjo → souwaとする。
②関数内で
nが0のとき、結果1を返す。→nが1のとき、結果1を返す。
そうでないとき、結果n * kaijo(n - 1)を返す。→n + souwa(n - 1)を返す。
#include
int souwa(int n)
{
int m;
if (n == 1) {
return 1;
}
else{
m = souwa(n-1);
return n + m;
}
}
int main()
{
int suuji,kotae;
printf("----------総和を求める関数---------\n");
printf("数字を入力してください。\n");
scanf("%d",&suuji);
kotae = souwa(suuji);
printf("1~%dの総和は%dです。\n",suuji,kotae);
printf("-------------------------------\n");
return 0;
}
int souwa(int n)
{
int m;
if (n == 1) {
return 1;
}
else{
m = souwa(n-1);
return n + m;
}
}
int main()
{
int suuji,kotae;
printf("----------総和を求める関数---------\n");
printf("数字を入力してください。\n");
scanf("%d",&suuji);
kotae = souwa(suuji);
printf("1~%dの総和は%dです。\n",suuji,kotae);
printf("-------------------------------\n");
return 0;
}