7744问题

#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函数,还有就是判断是否是整数的小技巧。

原文地址:https://www.cnblogs.com/jiqing9006/p/8508690.html