将范围内数字的平方具有对称性的数输出
题目描述
例如像数字11,它的平方就具有对称性11*11=121,将这类数字输出
样例输入(1到20为例)
输入说明:将要求的范围输入,输入最小数加空格再加最大数就行
1 20
C语言代码
#include<stdlib.h>
#include<stdio.h>
int main()
{
int min,max,m,count,flag;//count用于记录数字位数,便于打印和判断对称
int a[100];
printf("输入要求的范围(例如1到100):1 100\n");
scanf("%d %d",&min,&max); //输入范围
for(int i=min;i<max;i++)
{
m=i*i;
count=0;
while(m!=0)
{
a[count++]=m%10; //统计位数
m/=10;
}
flag=1;
for(int j=0;j<=count/2;j++) //只需要查看一半就行
{
if(a[j]!=a[count-1-j]) //将不是对称的数排除
{
flag=0;
break;
}
}
if(1==flag)
{
printf("%5d ",i);
printf("%8d",i*i); //顺便美化一下输出形式
printf("\n");
}
}
return 0;
}