您的位置:首页 > 其它

nyoj264国王的魔镜

2016-02-04 17:27 302 查看
先贴上我写的代码:

#include<stdio.h>

#include<string.h>

int count = 0;

int repeat(char a[110])

{

int length = strlen(a);

int end = length;

char b[55];

if(length == 1 || (length%2 != 0 && count == 0))

return 1;

else if((length%2 != 0 && count != 0))

return length;

else

{

for(int i = 0;i < length/2;i++)

{

count++;

if(a[i] != a[end-1])

return length;

else

{

b[i] = a[i];

end--;

}

}

b[length/2] = '\0';

}

return (repeat(b));

}

int main()

{

int n;

char a[110];

scanf("%d",&n);

while(n--)

{

scanf("%s",&a);

int l = repeat(a);

printf("%d\n",l);

}

return 0;

}

这里面要注意strlen()函数的用法。

一下是最有代码,的确要简便些:

#include<stdio.h>

#include<string.h>

main()

{

int z,x,q,i;

char a[101],t[51];

scanf("%d",&z);

getchar();

while(z--)

{

gets(a);

do

{

x=strlen(a);

if(x%2) break;

for(i=0;i<x/2;i++)

t[i]=a[x-1-i];

t[i]='\0';

a[x/2]='\0';

q=strcmp(a,t);

}while(q==0);

printf("%d\n",x);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: