要求求给定范围内,且开方是整数的回文数!
算法如下:
#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; } |
|