如果给定一个对称数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
0回答
打开App,查看更多内容
随时随地看视频慕课网APP