*で三角を作るプログラムを最小コードで

for文を使用し、*を使って三角形の図を書く問題を最小コードで書いてみることに。
23
何故か続きました...
まとめ 続・*で三角を作るプログラムを最小コードで 昨日、for文を使用し*を使って三角形の図を書く問題を最小コードで書いてみた。その続き。 7407 pv 37 1 user 1

きっかけ

あやふみ @ayafmy

本日のプログラミングの課題 1.*を使って次の図を書くプログラムを作成せよ。ただし、必ずfor文を使用すること。 * ** *** **** *** ** *

2014-02-25 17:41:19

ネタ

らんだむ @rndomhack

for (a=7056;a!==0;print(new Array(((a>>=2)&3)+2).join("*"))); http://t.co/fnjxzNb9y9

2014-02-25 20:30:50
らんだむ @rndomhack

もっと簡潔に書けそうな気がする

2014-02-25 20:33:16

最小コードの探求へ

らんだむ @rndomhack

for(print("*\n**\n***\n****\n***\n**\n*");0;);より短くなるのってあるんだろうか

2014-02-25 21:06:26
マルタコEX @marutakoEX

@rndomhack 文字列乗算が出来る言語とかなら・・・

2014-02-25 21:10:27

Cサイド

マルタコEX @marutakoEX

long a=0x002a2a2a; char* n=(char*)(&a); printf("%s\n",n);

2014-02-25 21:06:47
マルタコEX @marutakoEX

#include <stdio.h> #include <math.h> int main(void){ char* c="****\n"; for(int i=1;i<8;printf(c+abs(4-i++))); }

2014-02-25 23:05:20
マルタコEX @marutakoEX

#include <stdio.h> int main(void){ char* c="****\n"; for(int i=1;i<8;printf(c+((4-i>0)?4-i:i-4)),i++); }

2014-02-25 23:07:24
マルタコEX @marutakoEX

math使わんほうが短くなった

2014-02-25 23:09:38
マルタコEX @marutakoEX

#include <stdio.h> int main(){char* c="****\n";for(int i=1;i<8;printf(c+((4-i>0)?4-i:i-4)),i++);} 97bite 今はこれが精一杯...

2014-02-25 23:26:52
Yb@おっさん @kunio_Yb

main(){ char* c="****\n"; for(int i=1;i<8;printf(c+((4-i>0)?4-i:i-4)),i++); } //gccならこれでコンパイル通る

2014-02-25 23:19:11
Yb@おっさん @kunio_Yb

i; main(){ char* c="****"; for(;i<8;puts(c+((4>++i)?4-i:i-4))); } //コードゴルフ仕様?

2014-02-25 23:35:51
Yb@おっさん @kunio_Yb

i;main(){char* c="****";for(;i<7;puts(c+((4>++i)?4-i:i-4)));} //61bytes

2014-02-25 23:43:58
Yb@おっさん @kunio_Yb

@marutakoEX それをもとに短縮してみました。gcc(c言語として)でコンパイル。 i;main(){char* c="****";for(;i<7;puts(c+((4>++i)?4-i:i-4)));}

2014-02-25 23:45:15
残りを読む(80)

コメント

らんだむ @rndomhack 2014年2月26日
まとめを更新しました。
0
köümë™ @tknr_koume 2014年2月26日
perl -e 'foreach(1,2,3,4,3,2,1){print"*"x$_."\n"}' 配列の持ち方で削れそうな気もする
0
ラナ・クアール @rana_kualu 2014年2月26日
てっきりwhitespaceみたいに*だけで作るプログラミング言語かと思ったら
0
狭川 雀 @SagawaSuzume 2014年2月27日
10 FOR A=0 TO 6:PRINT LEFT("****",MID("1234321",A,1)):NEXT A などという懐古ネタ。
1
ARENA @Arenacyan 2014年2月27日
echo off set B=**** for %%A in (3 2 1 0 1 2 3)do echo !B:~%%A! BATファイルでw
0
ARENA @Arenacyan 2014年2月27日
for i=-3 to 3 WScript.Echo left("****",4-abs(i)) next (改行消えるけど、VBSで)
0