首页 > 编程语言 > 详细

C语言每日小练(一)——7744问题

时间:2014-04-08 21:31:20      阅读:1217      评论:0      收藏:0      [点我收藏+]

例:aabb

输出所有形如aabb的四位完全平方数(前两位数字相等、后两位数字相等)。

解:

法(1):(a)构造aabb形式的数;(b)判断是否为完全平方数。

代码:

#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 = 1100*a + 11*b;
            m = sqrt(n);
            if(floor(m+0.5) == m) printf("(1):%d\n", n);//判断两个浮点数是否相等,floor函数的作用是返回m的整数部分,加上0.5是为了减少误差影响。
        }
    }
    return 0;
}

结果:

bubuko.com,布布扣

法(2):(a)以平方根x作为循环变量,构造完全平方数n;(b)判断是否为aabb形式的数。

#include<stdio.h>
int main()
{
    int a, b, x, n;
    for(x = 32; ; x++)
    {
        n = x * x;
        if(n > 9999) break;
        a = n / 100;
        b = n % 100;
        if(a/10 == a%10 && b/10 == b%10) printf("(2):%d\n", n);
    }
    return 0;
}

结果:

bubuko.com,布布扣

比较上面两个程序,得到的结果都为7744,但执行时间不同,显然(2)比(1)更快,程序(1)用时0.001s,而程序(2)则用时0.000s,原因就在于程序(1)进行了大量的开方运算~

C语言每日小练(一)——7744问题,布布扣,bubuko.com

C语言每日小练(一)——7744问题

原文:http://blog.csdn.net/zenail501129/article/details/23192013

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!