ページ 1 / 1
再帰関数で人口を計算
Posted: 2011年12月12日(月) 17:16
by saki
再帰関数で何年後かの人口を計算したいんですけど
どうやって再帰関数を応用すればよいかわかりません
何年後かの人口*=pow(人口増加率,年数)で求まると思うんですけど
再帰関数を使って求めるにはどうすればいいのでしょうか?
Re: 再帰関数で人口を計算
Posted: 2011年12月12日(月) 17:37
by beatle
N年後の人口はどうやって求めようとしてますか?
人口増加率が一定だと仮定するなら
N年後の人口 = 現在の人口 * pow(人口増加率, N)
となるでしょう。
こんな単純な計算に再帰を使っちゃいますか?
Re: 再帰関数で人口を計算
Posted: 2011年12月12日(月) 17:40
by saki
ありがとうございます
そうですね
でも課題には再帰関数を使えとあるので
どうやっても
再帰関数を使う必要がないように思うんですけど
よくわからないんですよね
Re: 再帰関数で人口を計算
Posted: 2011年12月12日(月) 17:42
by asd
例えば元の人口、1年の実行増加率、年数を引数に持つ再帰関数を作成して、
年数が0のとき・・・元の人口を返す
年数がnのとき・・・n-1年の人口に人口増加率をかける(n-1年の人口が再帰関数)
という感じではないでしょうか。
再帰関数の勉強課題といったところでしょうか。
Re: 再帰関数で人口を計算
Posted: 2011年12月12日(月) 17:55
by non
saki さんが書きました:再帰関数を使って求めるにはどうすればいいのでしょうか?
「再帰関数を使って」→「作って」ってことでしょうね。
で、再帰関数は何か作ったことがありますか?
Re: 再帰関数で人口を計算
Posted: 2011年12月12日(月) 18:00
by beatle
sakiさんのやりたい事は、突き詰めれば
「xのn乗を計算する再帰関数を実装せよ」
ということに帰着できそうですね。
答えそのものを書くのもアレなので、xのn倍を計算する再帰関数を定義してみます。
コード:
#include <stdio.h>
int f(int x, int n)
{
if (n == 0)
{
return 0;
}
else
{
return x + f(x, n - 1);
}
}
int main(void)
{
printf("%d\n", f(4, 10));
return 0;
}