泉水 发表于 2014-9-14 17:51:40

求一个整数

怎么老是提示数据类型出错,求解答!
想求一个数,它加上100是一个完全平方数,再加上168还是一个完全平方数,最后输出这个数!
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
        long int a,b,i;
        for (i = 50; i <= 10000; i++)
        {
                a =sqrt(i + 100);
                b = sqrt(i + 268);
                if (a*a==i+100 && b*b==i+286)
                        printf("%ld\n",i);
        }
                system("pause");
        return 0;
}

elvo 发表于 2014-9-15 11:00:00

/******
* 这道题提供一条思路:
* 设要求的数为x
* 则a^2 = x + 100成立
* 且 (a+n)^2 = x + 168
* 其中a和n都是整数
* 下式减上式 = 2*n*a + n*n = 68
* 如果只考虑 a和n都是正整数的话
* *****/

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

#define DIF 68

int main()
{
        for(int n = 1; n < sqrt(DIF); n++)
                for(int a = 1; a < DIF/2 ; a++)
                        {
                                if(2*n*a + n*n == DIF)
                                {
                                        printf("这个数是: %d\n",a*a-100);
                                        printf("a: %d\n",a);
                                        printf("n: %d\n",n);
                                        printf("%d * %d = %d + 100\n",a,a,a*a-100);
                                        printf("%d * %d = %d + 168\n",a+n,a+n,(a+n)*(a+n)-168);
                                       
                                }
                        }
        return 0;
}


没有考虑负数的情况。。。。

泉水 发表于 2014-9-16 21:56:19

elvo 发表于 2014-9-15 11:00
没有考虑负数的情况。。。。

多谢了!
页: [1]
查看完整版本: 求一个整数