PTA A1031 Hello World for U
阿新 • • 發佈:2018-12-11
沒看懂題目n1=n3=max{k|k<=n2 for all 3<=n2<=N}
可以簡化為n1=n2=k(k<=n2),對k取max可以理解為對n1與n3取max。
注意:
1.找規律n1==n2==n3時,才增加n1和n3.
2.原來的迴圈賦值從1開始,我從1開始,知道為什麼了,可以不用-1.
#include<cstdio> #include<cstring> using namespace std; int main(){ char a[100]; char b[40][40]; scanf("%s",a); int n=strlen(a); int n1=(n+2)/3,n3=n1,n2=n-n1-n3+2; for(int i=0;i<n1;i++){ for(int j=0;j<n2;j++){ b[i][j]=' '; } } int pos=0; for(int i=0;i<n1;i++){ b[i][0]=a[pos++]; } for(int j=1;j<n2;j++){ b[n1-1][j]=a[pos++]; } for(int k=n3-2;k>=0;k--){ b[k][n2-1]=a[pos++]; } for(int i=0;i<n1;i++){ for(int j=0;j<n2;j++){ printf("%c",b[i][j]); } printf("\n"); } return 0; }