以下の内容はhttps://ozy4dm.hateblo.jp/entry/20061102/p1より取得しました。


Fibonacci

http://acm.pku.edu.cn/JudgeOnline/problem?id=3070
入力Nに対して、フィボナッチ数列のN項目の下4桁を表示しなちゃい、という問題。ゴルフでrubyばっかり使っていたせいでセミコロンを忘れまくる。対策としては、セミコロンが少なくて済むように短く書く(笑)
というわけで、とりあえず書いてみた95B

a;
main(b,t,n){
  for(;b=scanf("%d",&n),~n;a=!printf("%d\n",a))
    for(;n--%15000;a=b,b=t%10000)t=a+b;
}

forは1回の方が短いのか、試してないので知らないです。ポイントは、下4桁の場合15000項で一周期というところでしょうか。事前に計算しておかなくても、TLEにはなりませんでした。
計算部分がもうちょっと賢い方法ありそうなかんじですね。

追記:
kurimuraさんのアドバイスを参考に、91Bで仕上げました。

main(a,b,n){
  for(;b=scanf("%d",&n),~n;printf("%d\n",a))
    for(a=0;n--%'u0';a=(b-a)%10000)b+=a;
}

15000はリテラルに出来なかったので、倍数の30000を使用。GCC/C共に通ります。




以上の内容はhttps://ozy4dm.hateblo.jp/entry/20061102/p1より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14