今天在http://bbs.bc-cn.net/bbs/
看到一个关于求自然对数的问题
所谓自然对数是指两个自然数的和与差都是平方数,如:17+8=25,17-8=9,17和8就是自然对数。
版主是的思路非常的好
南京大学真出人才
设 A,B 是自然数对,则根据定义有
A+B = j2
A-B = i2
且j > i
于是:
2A= j2+i2
A =( j2+i2)/2
B =( j2-i2)/2
而且不难看出,要么i,j同为奇数,要么同为偶数。
一奇一偶将导致平方和(或平方差)为奇数,2就除不尽了。
#include<stdio.h>
main()
{
int i,j,A,B,s=0;
for(i=001;i<=14;i+=1)
for(j=i+2;j<=14;j+=2)
{ A=(j*j+i*i)/2;
if(A>100)continue;
B=j*j-A;
s+=i*i;
printf("%d,%d/t",A,B);//输出自然数对
}
printf("sum=%d/n",s);//输出自然数对之和509
}
知不足,而后进。
这个是编程的素养。
有天资成份
也有思考的收获
努力吧!
看到一个关于求自然对数的问题
所谓自然对数是指两个自然数的和与差都是平方数,如:17+8=25,17-8=9,17和8就是自然对数。
版主是的思路非常的好
南京大学真出人才
设 A,B 是自然数对,则根据定义有
A+B = j2
A-B = i2
且j > i
于是:
2A= j2+i2
A =( j2+i2)/2
B =( j2-i2)/2
而且不难看出,要么i,j同为奇数,要么同为偶数。
一奇一偶将导致平方和(或平方差)为奇数,2就除不尽了。
#include<stdio.h>
main()
{
int i,j,A,B,s=0;
for(i=001;i<=14;i+=1)
for(j=i+2;j<=14;j+=2)
{ A=(j*j+i*i)/2;
if(A>100)continue;
B=j*j-A;
s+=i*i;
printf("%d,%d/t",A,B);//输出自然数对
}
printf("sum=%d/n",s);//输出自然数对之和509
}
知不足,而后进。
这个是编程的素养。
有天资成份
也有思考的收获
努力吧!