求一个整数
怎么老是提示数据类型出错,求解答!想求一个数,它加上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;
} /******
* 这道题提供一条思路:
* 设要求的数为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;
}
没有考虑负数的情况。。。。 elvo 发表于 2014-9-15 11:00
没有考虑负数的情况。。。。
多谢了!
页:
[1]