一个正整数,加上100后是一个完全平方数,再加上168还是完全平方数,按照从大到小的顺序,连续输出三个满足这样条件的数

1.使用穷举法,找到三个就停止
2.判断完全平方数:先将该数开方再平方,结果与原数相等即可。因为完全平方数开方平方无变化。而其他的被强制转换成了int类型数据有变化,再开平方就和之前的不一样了

代码如下
一定要注意,结束条件是 count,sqrt函数的使用

#include<stdio.h>
#include<math.h>

int main()
{
    
    
    int i, count = 0, a;
    for(i=1;count<3;i++)//结束条件是count
    {
    
    
        a = i + 100;
        if ( (int)sqrt(a) * (int)sqrt(a) == a )
        {
    
    
            a = a + 168;
            if( (int)sqrt(a) * (int)sqrt(a) ==a )
            {
    
    
                count++;
                printf("%d\n", i);
            }
        }
    
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_51676760/article/details/109721829