Cygwinでデバッグ/例題2

三角数の和への分解

三角数の説明

作りたいプログラム

以下の指示に従って、プログラムを作れ。

ヒント1:「3つ以下」の部分を、「0が混じってもよい」と解釈すると、プログラムが簡単になる。「tri(0) = 0」 なので都合がよい。

例: 6 = 0 + 0 + 6
   6 = 0 + 3 + 3

ヒント2:重複する分解は、うまくループを回すことで、候補から除外できる。

例: 10 = 1 + 3 + 6 で1通りと数えるとすると、
   10 = 1 + 6 + 3 や、
   10 = 3 + 1 + 6 などは、探索しないように工夫する。

コンパイル時にオプションをつけると、同じプログラムのままでも実行速度が早くなる。

gcc -O2 hoge.c

のように、"-O2"(マイナス・オー・に)を付け加えるとよい。

実行時間を測るには、

./a.exe

を実行する代わりに、

time ./a.exe

と、先頭に "time" を付けて実行すればよい。0.01 秒よりも細かい値が表示されるかもしれないが、かなりの誤差も含んでいる。実用上あてにできる値は 0.03 秒単位ぐらいである。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS