再帰関数で人口を計算

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
saki

再帰関数で人口を計算

#1

投稿記事 by saki » 14年前

再帰関数で何年後かの人口を計算したいんですけど

どうやって再帰関数を応用すればよいかわかりません



何年後かの人口*=pow(人口増加率,年数)で求まると思うんですけど

再帰関数を使って求めるにはどうすればいいのでしょうか?

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: 再帰関数で人口を計算

#2

投稿記事 by beatle » 14年前

N年後の人口はどうやって求めようとしてますか?
人口増加率が一定だと仮定するなら
N年後の人口 = 現在の人口 * pow(人口増加率, N)
となるでしょう。

こんな単純な計算に再帰を使っちゃいますか?

saki

Re: 再帰関数で人口を計算

#3

投稿記事 by saki » 14年前

ありがとうございます
そうですね

でも課題には再帰関数を使えとあるので
どうやっても
再帰関数を使う必要がないように思うんですけど
よくわからないんですよね

アバター
asd
記事: 319
登録日時: 15年前

Re: 再帰関数で人口を計算

#4

投稿記事 by asd » 14年前

例えば元の人口、1年の実行増加率、年数を引数に持つ再帰関数を作成して、
年数が0のとき・・・元の人口を返す
年数がnのとき・・・n-1年の人口に人口増加率をかける(n-1年の人口が再帰関数)

という感じではないでしょうか。

再帰関数の勉強課題といったところでしょうか。
Advanced Supporting Developer
無理やりこじつけ(ぉ

non
記事: 1097
登録日時: 15年前

Re: 再帰関数で人口を計算

#5

投稿記事 by non » 14年前

saki さんが書きました:再帰関数を使って求めるにはどうすればいいのでしょうか?
「再帰関数を使って」→「作って」ってことでしょうね。
で、再帰関数は何か作ったことがありますか?
non

beatle
記事: 1281
登録日時: 14年前
住所: 埼玉
連絡を取る:

Re: 再帰関数で人口を計算

#6

投稿記事 by beatle » 14年前

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;
}

閉鎖

“C言語何でも質問掲示板” へ戻る