解法一:
/*
题目:输出所有形如aabb的四位完全平方数(即前两位相等,后两位也相等)
思考:判断一个数是否为完全平方数,先求出它的平方根,看是否是整数
判断一个数是否是整数,把这个数与它的整数部分比较即可。
*/
#include<stdio.h>
#include<math.h>
int main(){
int a,b,n;
double m;
for(a=1;a<=9;a++){
for(b=0;b<=9;b++){
n=a*1100+b*11;//记录所有的完全平方数
m=sqrt(n);//n开平方
if(floor(m+0.5)==m)//判断m是否是整数
printf("%d\n",n);
}
}
return 0;
}
解法二:
/*
枚举平方根x
*/
#include<stdio.h>
int main(){
int x,n,hi,lo;
for(x=1;;x++){
n=x*x;//枚举所有的完全平方数
if(n<1000)continue;
if(n>9999)break;
hi=n/100;//取前两位数
lo=n%100;//取后两位数
if(hi/10==hi%10 && lo/10==lo%10)//判断n是否是形如aabb的形式
printf("%d\n",n);
}
return 0;
}
注意:
floor | |||||||
| |||||||
|