要求求给定范围内,且开方是整数的回文数!
算法如下:
| #include "stdio.h"
int iFen(int *piOut,int iInput); int main() { int ia=999999999; printf("请输入一个整数\n"); scanf("%d",&ia); int iOut[16]; iFen(iOut,ia); return 0; } int iFen(int *piOut,int iInput) { int a,i,c,b;
for( a=1;a<iInput;a++) { if(a*a>iInput)//平方数大于给定的数就返回 return 1; b=a*a; for( i=0;b!=0;i++) { piOut[i]=b%10; b/=10; } c=0; for(i--;i>c;c++,i--) { if(piOut[i]!=piOut[c]) break; } if(i<=c) printf("%d\n",a*a); }
return 1; } |
| int iHuWe(int *piInput)//判断是否是回文数 { static int temp; temp=0; for(int i=*piInput,*piOunt=0;i>0;i/=10) //按位将整数倒过来,产生反序数 { temp=temp*10 + i%10; } view plaincopy to clipboardprint? if(temp==*piInput) { //printf("是回文数{%d}\n",*piInput); return 1; } else //printf("不是回文数{%d}!={%d}\n",*piInput,temp); return 0; } |

