如果给定一个对称数n,请你求出大于n的最小对称数(即这个数从左向右读和从右向左读是完全一样的)。
#include<stdio.h>
main()
{
int a[11],t,i,n,s,j,k,x,y,flag;
scanf("%d",&t);
for(i=1;i<=t;i++)
{
flag=1;
scanf("%d",&n);
loop:for(k=n+1;;k++)
{
j=0; s=0;
do
{
a[j]=k%10;
k=k/10;
j++;
s++;
}while(k>0);/*将一个数的每一个位上的数存入数组*/
a[s]='\0';
for(x=0,y=s-1;x<s;x++,y--)
{
if(a[x]!=a[y])
{
flag=0;
break;
}
}/*判断该数组是不是对称的*/
if(flag==1)
{
for(j=s-1;j>=0;j--)
printf("%d",a[j]);
printf("\n");
break;
}
if(flag==0)
{
printf("no");
goto loop;
}
}
}
return 0;
}
问题:如输入2,输出3; 输入54,输出55;但是当输入99时是无限输出no;输入9,88,33,101等也是如此。
慕粉1472527782
浏览 2966回答 0
打开App,查看更多内容