アカウント名:
パスワード:
C言語レベルですが
#include <iostream>#define macro1 std::cout << x++ << std::endl#define macro4 macro1; macro1; macro1; macro1#define macro20 macro4; macro4; macro4; macro4; macro4#define macro100 macro20; macro20; macro20; macro20; macro20int main() { int x = 1; macro100; return 0;}
100=5×5×4って、ことで、3回に分けてloop unroll
これ、macro1をprintf("%d\n", x++);にすればC言語で行けるのでは
最初C言語で書いてたんですが、書き上げたところで「あっ、C++か」と、申し訳程度にiostreamに変えました。元のコードは
#include <stdio.h>#define macro1(x) printf("%d\n", (x))#define macro4(x) do { macro1((x)); macro1((x)+1); macro1((x)+2); macro1((x)+3); } while (0)#define macro20(x) do { macro4((x)); macro4((x)+4); macro4((x)+8); macro4((x)+12); macro4((x)+16); } while (0)#define macro100(x) do { macro20((x)); macro20((x)+20); macro20((x)+40); macro20((x)+60); macro20((x)+80); } while (0)int main() { macro100(1); return 0;}
こんなの。iostreamに変えるついでに、コードを出来るだけ短くしたのが元のコメントです。
あとは、もうちょっと変態なので
#include <stdio.h> #define num1(x) #x "\n"#define num2(x, y) num1(x##y)#define num3(x, y, z) num2(x, y##z) #define str_1_9 \ num1(1) num1(2) num1(3) num1(4) \ num1(5) num1(6) num1(7) num1(8) num1(9) #define str_x0_x9(x) \ num2(x,0) num2(x,1) num2(x,2) num2(x,3) num2(x,4) \ num2(x,5) num2(x,6) num2(x,7) num2(x,8) num2(x,9) #define str_10_99 \ str_x0_x9(1) str_x0_x9(2) str_x0_x9(3) str_x0_x9(4) str_x0_x9(5) \ str_x0_x9(6) str_x0_x9(7) str_x0_x9(8) str_x0_x9(9) #define str_100 num3(1,0,0) #define str_1_100 str_1_9 str_10_99 str_100 int main() { fputs(str_1_100, stdout); return 0;}
なんてのも書いてみたんですが、「1~100って面倒だよなぁ。0~99ならもっと簡単なのに」と思いつつ没ったのでした。
これは現場で見たら頭抱える/(^o^)\
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
海軍に入るくらいなら海賊になった方がいい -- Steven Paul Jobs
たぶん初級レベル (スコア:1)
C言語レベルですが
100=5×5×4って、ことで、3回に分けてloop unroll
Re: (スコア:0)
これ、macro1をprintf("%d\n", x++);にすればC言語で行けるのでは
Re:たぶん初級レベル (スコア:2)
Re:たぶん初級レベル (スコア:1)
最初C言語で書いてたんですが、書き上げたところで「あっ、C++か」と、申し訳程度にiostreamに変えました。
元のコードは
こんなの。iostreamに変えるついでに、コードを出来るだけ短くしたのが元のコメントです。
あとは、もうちょっと変態なので
なんてのも書いてみたんですが、「1~100って面倒だよなぁ。0~99ならもっと簡単なのに」と思いつつ没ったのでした。
Re: (スコア:0)
これは現場で見たら頭抱える/(^o^)\