/* * # awk -f ojo2c z.ojo>/tmp/z.c&&gcc /tmp/z.c&&time ./a.out 3000 * フィボナッチ数を求める * メモリリークチェック * gcc -g -fsanitize=address -O3 008c.c && ./a.out 100 * 実行時間計測 * gcc -o 008c -O3 008c.c && time ./008c 100 */ #include #include //#include "sebas.h" /* これはなんですの? セバスチャンにお尋ねしても「おまじないでございます」としか答えてくださいませんわ */ //#include "ojosama.h" /* わたしくにだって秘密のひとつやふたつはございますのよ? */ #define 領地を拡大しますわ q=(node*)malloc(sizeof(node)); #define 新築ですの 領地を拡大しますわ q->val=0; q->next=NULL; #define c家が増築なさいました NEWQ c=c->next=q; #define c様隣室を拝借いたしますわ c=c->next; #define お掃除ですの while(x!=NULL){q=x; x=x->next; free(q);} 整数家の main殿は引数として コマンドパラメータ をお受け取りになる関数でして つぎのことをなさいます 整数家の n様は0, ca様は0, t様は0 ですわ タイプを定義いたしますわ こちらの構造の nodetag様はつぎのようになっています 整数家の val様と 構造 nodetag *next; 以上がタイプの定義と node様ですの node ご当主様a,ご当主様b,ご当主様c, 初代様a1,初代様b1,初代様c1, ご当主様q, ご当主様xですわ もし argc が2に等しいでしたら n様はatoi(argv[1])ですわ そうでなければ 使い方をお教えて差し上げますわ printf("[使い方]\nn番目のフィボナッチ数を計算します。\n[例]time ./008d 300000\n\n"); お持ち帰りいただくのは -1ですわ もしのお話はこれでおしまいですのよ printf("n=%d\n",n); 新築ですの a家はa1家はqですわ q家のval様は1ですわ 新築ですの b家はb1家はqですわ q家のval様は1ですわ 新築ですの c家はc1家はqですわ 何回もnを減らして1になるまで つぎのことをなさいます a家はa1様ですの b家はb1様ですの c家はc1様ですの ca様は0ですわ 何回も ca様が正またはb家に中身がある限り つぎのことをなさいます t様は (a家にはどなたもいらっしゃらないのかしら?無人それともa家のval様)と(b家にはどなたもいらっしゃらないのかしら?無人それともb家のval様)とcaですわ c家のval様は(ca様はt様の値が10以上かしら)?t-10それともtですわ もし ca でしたら//きゃりーがございます もし c家のnext様がいらっしゃらない でしたら c家が増築なさいました そうでなければ c様隣室を拝借いたしますわ もしのお話はこれでおしまいですのよ そうでなければ //きゃりーはございません もし b家に中身があるかつb家のnext様が居られる でしたら//bで最上位を演算中でございます もし c家のnext様がいらっしゃらない でしたら c家が増築なさいました そうでなければ c様隣室を拝借いたしますわ もしのお話はこれでおしまいですのよ もしのお話はこれでおしまいですのよ もしのお話はこれでおしまいですのよ a家は(a家にはどなたもいらっしゃらないのかしら)?空虚それともa家のnext様ですの b家は(b家にはどなたもいらっしゃらないのかしら)?空虚それともb家のnext様ですの 繰り返すのはここまでございます q家はa1様ですの a1家はb1様ですの b1家はc1様ですの c1家はq様ですの 繰り返すのはここまでございます /*答えはb, b1は最下位をポイント 答えを逆順にしてqに仮格納*/ b家はb1様ですの x家は空虚ですわ 何回も b家に中身がある限り つぎのことをなさいます 領地を拡大しますわ q家のval様はb家のval様ですの q家のnext様はx様ですの x家はqですわ b家はb家のnext様ですの 繰り返すのはここまでございます 何回も q家に中身がある限り つぎのことをなさいます printf("%d",q家のval様を表示)ですわ q家はq家のnextですわ 繰り返すのはここまでございます printf("\n"); お掃除ですの; x家はa1様ですの お掃除ですの x家はb1様ですの お掃除ですの x家はc1様ですの お掃除ですの お持ち帰りいただくのは 0ですわ 以上ですの