電子書籍の厳選無料作品が豊富!

【質問】
1日目に1円、2日目に2円、3日目に4円というように、前日の2倍のお金を貯金したときに、貯金の合計額が100万円を超えるのは何日目になるかを求めるプログラム作成についての質問です。

【プログラム作成例】
20日目に524288円貯金し合計 1048575円になります


上記の解答は下記の通りなのですが、下記以外の解答方法を教えてはいただけないでしょうか?
C言語に詳しい方よろしくお願いいたします。


#include <stdio.h>
main()
{
int n;
long tyokin, gokei;

n = 1; /* 日数nを1にする */
tyokin = 1; /* 1日の貯金額の初期値を1円にする */
gokei = 1; /* 貯金の合計を1とする */
while (gokei <= 1000000) { /* 貯金の合計が100万円以下の間繰り返す */
tyokin *= 2; /* 1日の貯金額を2倍にする */
gokei += tyokin; /* 貯金額を積算する */
n++; /* 日数を1日増やす */
}
printf ("%d 日目に %ld 円貯金し合計 %ld 円になります\n",n, tyokin, gokei);
return (0);
}

A 回答 (1件)

先ほどから似たような質問がいやに多い気がしますが。

いかがされましたか?

for(n=1,tyokin=1,gokei=1;gokei<=1000000;tyokin*=2,gokei+=tyokin,n++);

なんてのもいけそうですね。
    • good
    • 0
この回答へのお礼

ご解答ありがとうございます!

プログラム作成の問題集をやっているのですが、もっとほかの解答例はないものかと思い質問させていただきました。

north_2ndさんのやり方もたぶん大丈夫そうなんで参考にさせていただきます。

お礼日時:2007/06/24 22:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!