#include <stdio.h>
#include <math.h>
// 算法竞赛的目标是编程对任意输入均得到正确的结果。
// 请先独立完成,如果有困难可以翻阅本书代码仓库中的答案,但一定要再次独立完成。
// “抓住主要矛盾”——始终把学习、实验的焦点集中在最有趣的部分。如果直观地解决方案行得通,就不必追究其背后的原理。
/**
【题目】输出所有形如aabb的4位完全平方数(即前两位数字相等,后两位数字也相等)。
*/
/**
【分析】通过循环的方式(1000~9999),再一个就是判断aabb,判断是否是完全平方数。
*/
int main()
{
int i;
int a,b,c,d;
for (i = 1000;i<=9999;i++) {
d = i % 10;
c = (i/10) % 10;
b = (i/100) % 10;
a = (i/1000) % 10;
if (a==b && c == d) {
// 判断是否是完全平方数
//printf("%d
",i);
double r;
r = sqrt(i);
if (floor(r) == r) {
printf("%d
",i);
}
}
}
return 0;
}
点评:通过循环来解决这个问题。再一个,这里用到了sqrt函数,还有就是判断是否是整数的小技巧。