パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

新人教育向けの秀逸な課題プログラムって?」記事へのコメント

  • by yujnishi (37918) on 2009年06月02日 23時26分 (#1578690)
    printf("55\n");

    こんな人もいました。。。
    案外いろいろ出てくるかも
    • by shiroiwanisan (12855) on 2009年06月03日 9時48分 (#1578897) 日記
      それは、単に和を表示しているだけ、問題を正しく理解していない。
      こう書くべきでは?

      printf("%d\n",1+2+3+4+5+6+7+8+9+10);
      親コメント
    • by Anonymous Coward
      普通の人ならforなどでループするか、再帰を使うかどちらかに絞られて
      面白くなさそうですが。。
      • アルゴリズムや視認性、理解性、パフォーマンスはさておき、計算方法は
        ・数だけループ(for, while, Do-while)
        ・数だけ再帰
        ・指定された足し算を並べる
        ・最大値+1を、最大数の1/2回かける
        くらいがパっと思いついた。

        たしかにアルゴリズムとしてはあまり幅が無くて面白くなさそうかも。

        # 僕が無能なだけ?

        親コメント
        • by Anonymous Coward
          これはループで計算させた後、余談で「Σn = n(n+1)/2 でやるのがいちばん速くて頭がいい。数学は大事」としめます。
          • 昔、fjで話題になりました。

            > これはループで計算させた後、余談で「Σn = n(n+1)/2 でやるのがいちばん速くて頭がいい。

              これをこのまま実際の計算機に適応すると、扱える数値に限界があるので、単純にループで
            まわしたほうが、扱える問題(nの大きさ)の範囲が広くなります。unsighec charなら
            n=16でオーバーフローします。 ループだと n= 22までOK 

            n(n+1)でオーバーフローしないように、

            nが偶数の場合は n/2 * (n+1)
            nが奇数の場合は n * ((n+1)/2) と場合わけしましょう。

            > 数学は大事」としめます。
            「実際の計算機はうっとおしい」としめします。

            # ガウスの伝記で、子供のころに大人と計算競争するところで、これと似た話が出てました。
            親コメント

ナニゲにアレゲなのは、ナニゲなアレゲ -- アレゲ研究家

処理中...