#include <stdio.h>
//正の奇数nを引数とし、n以下の正の奇数の和を求める関数
int rec(int n)
{
if (n == 1)
{
return 1; // n=1のとき、和は 1
}
else
{
return n+rec(n - 2); // n 以下の奇数の和 = (n-2) 以下の奇数の和 + n
}
}
int main(void)
{
int n = 11;
printf("%d以下の正の奇数の和は%d\n", n
, rec
(n
)); return 0;
}
// 実行結果: 11以下の正の奇数の和は36 (1+3+5+7+9+11 = 36)
ICNpbmNsdWRlIDxzdGRpby5oPgogIC8v5q2j44Gu5aWH5pWwbuOCkuW8leaVsOOBqOOBl+OAgW7ku6XkuIvjga7mraPjga7lpYfmlbDjga7lkozjgpLmsYLjgoHjgovplqLmlbAKICBpbnQgcmVjKGludCBuKQogIHsKICAgICBpZiAobiA9PSAxKQogICB7CiAgICAgICAgcmV0dXJuIDE7IC8vIG49MeOBruOBqOOBjeOAgeWSjOOBryAxCiAgICAgfQogICAgZWxzZQogICAgIHsKICAgICAgICAgcmV0dXJuIG4rcmVjKG4gLSAyKTsgLy8gbiDku6XkuIvjga7lpYfmlbDjga7lkowgPSAobi0yKSDku6XkuIvjga7lpYfmlbDjga7lkowgKyBuCiAgICB9CiB9CiAKIGludCBtYWluKHZvaWQpCiB7CiAgICAgaW50IG4gPSAxMTsKICAgICBwcmludGYoIiVk5Lul5LiL44Gu5q2j44Gu5aWH5pWw44Gu5ZKM44GvJWRcbiIsIG4sIHJlYyhuKSk7CiAgICAgcmV0dXJuIDA7CiB9Ci8vIOWun+ihjOe1kOaenDogMTHku6XkuIvjga7mraPjga7lpYfmlbDjga7lkozjga8zNiAoMSszKzUrNys5KzExID0gMzYp