Case #1:
123456789
Case #2:
Hello, welcome to my dream world!
Case #3:
Toodming is best
Case #4:
sokaisan
开始是想用二维数组按格式存起来的,但感觉直接输出也可以,比较麻烦,然后反正就慢慢调,调了好长时间啊。
图中表格,m为一个大循环,里面分两种情况,第一种是多余出来的不满的那一行多余出来的部分,所以每次找第
二个数要加row+1,第二种情况是m多余出来去掉多余剩下的,每次找第二个数加row,最后出现的情况就是最后那一行
多余出来的数输出完了,还会多余向外输出,就用cnt记录了一下输出的总数,到len-1就不输出了。
#include<cstdio>
#include<cstring>
using namespace std;
char JIEMI[1000][1000];
int main()
{
int n,kase=0;
scanf("%d",&n);
getchar();
while(n--){
char s[1000000];
gets(s);
int m;
int len = strlen(s);
scanf("%d",&m);
getchar();
// printf("%lf",len*1.0/m*1.0);
printf("Case #%d:\n",++kase);
if(len*1.0/m*1.0 <= 1.00) puts(s);
else {
int row = len/m;
int yu = len%m;
int cnt=0;
for(int k=0;k<=len/m;k++){
int j=k;
int i=0;
for(;i<=len%m;i++,j+=(row+1) )
if(cnt<len)
{ printf("%c",s[j]); cnt++; }
j-=(row+1); j+=row;
for(;i<m;i++,j+=row)
if(cnt<len)
{ printf("%c",s[j]); cnt++; }
}
printf("\n");
}
}
return 0;
}