3、已知条件求整数问题
时间:2010-03-30 来源:280552108
【程序3】
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
的结果满足如下条件,即是结果。请看具体分析:
2.提示:1+3+5+...+(2n-1) = (1+(2n-1))*n/2 = n*n
3.程序源代码:
#include <stdio.h>
int issqure1(long int);
int
main(void)
{
long int i;
printf("100000以内的满足条件的完全平方数有:\n");
for(i = 1; i < 100000; i ++){
if(issqure1(i + 100) && issqure1(i + 268))
printf("%ld\n", i);
}
return 0;
}
int issqure1(long int n)
{
int i, sum;
sum = 0;
for(i = 1; sum < n; i ++)
sum += (2 * i - 1);
if(sum == n)
return 1;
else
return 0;
}
3.输出结果:
andy@andy-laptop:~/work/study/c/100$ ./3
100000以内的满足条件的完全平方数有:
21
261
1581
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
的结果满足如下条件,即是结果。请看具体分析:
2.提示:1+3+5+...+(2n-1) = (1+(2n-1))*n/2 = n*n
3.程序源代码:
#include <stdio.h>
int issqure1(long int);
int
main(void)
{
long int i;
printf("100000以内的满足条件的完全平方数有:\n");
for(i = 1; i < 100000; i ++){
if(issqure1(i + 100) && issqure1(i + 268))
printf("%ld\n", i);
}
return 0;
}
int issqure1(long int n)
{
int i, sum;
sum = 0;
for(i = 1; sum < n; i ++)
sum += (2 * i - 1);
if(sum == n)
return 1;
else
return 0;
}
3.输出结果:
andy@andy-laptop:~/work/study/c/100$ ./3
100000以内的满足条件的完全平方数有:
21
261
1581
相关阅读 更多 +