Comment detail

LL Golf Hole 8 - 横向きのピラミッドを作る (Nested Flatten)
改行をどうするかちょっと悩んだけど、まぁ何とか。
151bytes。実質148bytes
1
2
3
4
5
#include <iostream>
int n;
void g(int i){while(i--)std::cout<<"*\n"[i?0:1];}
void f(int i){g(i);if(i!=n+1)f(i+1),g(i);}
main(){std::cin>>n;f(2);}

同じコードを短縮してみました。 iostream.h使うとstd::省略とか、i?1:0の代わりにi==0とか、関数のvoid削除とか。 意外とコンパイル出来るもんですね。 改行あわせて132バイト。

1
2
3
4
5
#include <iostream.h>
int n;
g(int i){while(i--)cout<<"*\n"[i==0];}
f(int i){g(i);if(i!=n+1)f(i+1),g(i);}
main(){cin>>n;f(2);}
g++ 3.4.5 (mingw) や 4.1.2 、Sun C++ 5.8 で試してみましたが、
3行目4行目(関数の返値型省略)がerrorになってコンパイルできませんでしたよー

#7583の匿名さんではありませんが、 IBM XL/C++では(ワーニングがでますが)コンパイル&実行可能です。

とはいえ、環境依存のようですからその旨を書いておいたほうがよさそうですね。

Index

Feed

Other

Link

Pathtraq

loading...