【问题描述】编程输出所有形如aabb的四位完全平方数(即前两位数字相等,后两位数字也相等)。
思路一:
分析:我们枚举出所有可能的aabb,然后判断它们是否为完全平方数。注意,a的范围是1-9,但b可以是0。主程序的伪代码如下:
for(a = 1; a <=9; a++)
for(b = 0; b<=9; b++)
if(aabb是完全平方数) printf(“%d\n”,aabb);
上面伪代码有两个“非法”的地方:一是完全平方数的判定,二是aabb这个变量。后者比较容易处理,用另外一变量n=a*1100+b*11存储即可。
如何判断n是否是完全平方数?
思路:求n的平方根 m = sqrt(n) (求n的平方根)
若m*m等于n,n即是完全平方数。
请根据上述分析写出完整的程序。
【样例输入】
无
【样例输出】
7744
#include<stdio.h>
#include<math.h>
int main()
{
int a,b,m,n;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
{
n=a*1100+b*11,m=sqrt(n);
if(m*m==n)
printf("%d\n",a*1100+b*11);
}
return 0;
}