お誕生日席の定義を与えようとしている。
— 綾波型駆逐艦のな[46/461] 10% (@nonamea774) 2014, 10月 23
凸四角形までしか良い定義を与えられない。 pic.twitter.com/fhfhvYwRlg
— 綾波型駆逐艦のな[46/461] 10% (@nonamea774) 2014, 10月 23
その後
i;main(r){r*=i--?:scanf("%d",&i);i?main(r):printf("%d",r);} もうちょっと短かくならんかな……
— 綾波型駆逐艦のな[46/461] 10% (@nonamea774) 2014, 10月 23
今のコード
i;main(r){r*=i--?:scanf("%d",&i);i?main(r):printf("%d",r);}
【追記】06:10
i;main(r){i||scanf("%d",&i);i?main(r*i--):printf("%d",r);}
わずかに良くなる。
【追記】06:12
i;main(r){scanf("%d",&i);i?main(r*i--):printf("%d",r);}
【追記】06:35 同着
i;main(r){for(i=getchar()-48;r*=i--?:printf("%d",r););}
i;main(r){for(scanf("%d",&i);r*=i--?:printf("%d",r););}
元のコード
#include <stdio.h>
int fact(int n){
if(n == 0) return 1;
return n * fact(n-1);
}
int main(){
int n = 0;
scanf("%d", &n);
printf("%d", fact(n));
return 0;
}
テスト環境
$ for i in `seq 0 12`; sh -c "echo $i | ./a.out "