13476263183 发表于 2021-6-27 19:03:07

新手求教,有两个提示,但没有错误,不知道这样行不行

/****************************************************
***一个整数,它加上100后是一个完全平方数,再    ***
***加上168又是一个完全平方数,请问该数是多少?***
****************************************************/

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


int main()
{
        int i , j , k ;

        for(i=-100; i<10000 ; i++)
        {
                j= sqrt(i+100);
                k= sqrt(i+268);
                if( (j*j == i+100) && k*k == i+268)
                {
                        printf("这个整数是%d。\n",i);
                }
        }
}


13476263183 发表于 2021-6-27 19:04:16

运行起来也没毛病,但不晓得这个会不会有什么缺陷

万千只cnm 发表于 2021-6-27 19:28:04

#include <stdio.h>

int main()
{
        int i;
        int j;
        int k;

        for(i = 0; i < 1000; i++)//我们要判断的数
        {
                for(j = 0; j < 1000; j++)//判断i+100是否是j的平方数
                {
                        if(i + 100 == j * j)
                        {
                                for(k = j; k < 1000; k++)//判断i+168是否是k的平方
                                {
                                        if(i + 168 == k * k)
                                        {
                                                printf("%d\n",i);
                                        }
                                }
                        }
                }
        }

        return 0;
}
 

夏三笙 发表于 2021-6-28 09:15:37

开根号后不一定是整数,但是你定义的i和j是整形,所以你这个最终不会得到想要的结果。
页: [1]
查看完整版本: 新手求教,有两个提示,但没有错误,不知道这样行不行