問題はこちら
No.646 逆ピラミッド - yukicoder
言われたとおりに二重ループを実装するだけ
main(){ int n; scanf("%d",&n); for(int i=n;i>0;i--){ for(int j=0;j<i;j++)printf("%d",n); puts(""); } }
縮める。まずはささっと
i,j; main(n){ scanf("%d",&n); for(i=n;i>0;i--,puts(""))for(j=0;j++<i;)printf("%d",n); }
頑張って縮める
for(i=n;i>0;i--,puts(""))for(j=0;j++<i;)printf("%d",n); //for文圧縮 for(i=n;j++<i?printf("%d",n):(j=0,puts(""),--i);); //三項演算子の順序を入れ替え for(i=n;++j>i?j=0,puts(""),--i:printf("%d",n);); //jのループを逆に for(j=i=n;!j--?puts(""),j=--i:printf("%d",n);); //putsの返り値を使う for(j=i=n;!j--?j=i-=puts(""):printf("%d",n););
ということで完成品がこちら
i,j; main(n){ scanf("%d",&n); for(j=i=n;!j--?j=i-=puts(""):printf("%d",n);); }
74B