• ベストアンサー

1円、2円、3円・・・と貯金していくと・・・

1日目に1円。 2日目に2円。 3日目に3円。   ↓ n日目にn円。 という風に貯金していく。 100万円貯まる日にちを表示するプログラム。 1/2(n)(n+1)<1000000。 #include <stdio.h> int main() { double n = 0; double i = 0; while(n<1000000) { n = n+(n+1); i++; } printf("%d",i); return 0; } こんな感じで書いてみましたがなぜか20日くらいになります。 何が間違ってるんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • Hercules
  • ベストアンサー率41% (52/125)
回答No.1

n = n + ( n + 1 ) ; ではなく、 n = n + ( i + 1 ) ; では?

dragon_dragon
質問者

お礼

ありがとうございます。 初めのほうで具体的にやってみると間違いがわかりますね。

その他の回答 (1)

  • rinkun
  • ベストアンサー率44% (706/1571)
回答No.2

お書きのプログラムですと、1日目は1円、2日目は3円、3日目は7円と倍々ゲームで増えていきますね。 > n = n+(n+1) じゃなく < n = n+(i+1) じゃないですか。

dragon_dragon
質問者

お礼

ありがとうございます。 ポイントは申し訳ありませんが、速い順とさせていただきますね。

関連するQ&A