问大家一个初中数学题,速求简便算法?
计算:
1+(1/1+2)+(1/1+2+3)+(1/1+2+3+4)+……+(1/1+2+3+4+……100)
在线等。
问题点数:20、回复次数:9Top
1 楼KRZhang(大坏蛋)回复于 2003-11-01 11:11:02 得分 0
写得精确点,应该是:
1+(1/(1+2))+(1/(1+2+3))+(1/(1+2+3+4))+……+(1/(1+2+3+4+……100))
请写出步骤Top
2 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2003-11-01 11:33:11 得分 4
int Count(int max){
int retVal=1;
for(int i=2;i<=max;i++){
int n=0;
for(int j=1;j<=i;j++){
n+=j;
}
retVal+=(1/n);
}
return retVal;
}
Count(100)的结果是1Top
3 楼webdiyer(.net资源精华—www.dotneturls.com)回复于 2003-11-01 11:37:11 得分 5
对不起,错得远了,返回的值应该是double,用这个试试:
double Count(int max){
double retVal=1;
for(int i=2;i<=max;i++){
int n=0;
for(int j=1;j<=i;j++){
n+=j;
}
retVal+=(1.0/n);
}
return retVal;
}
Count(100)返回的结果是:1.98019801980198Top
4 楼loulanlouzhu(桃花潭水深千尺,不及阿勇念你情)回复于 2003-11-01 11:46:47 得分 3
double j = 0;
for(int i=1;i<=100;i++)
{
double a = 2*(1.0/i-(1.0/(1.0+i)));
j = j+a;
}
Response.Write(j.ToString());Top
5 楼loulanlouzhu(桃花潭水深千尺,不及阿勇念你情)回复于 2003-11-01 11:48:20 得分 2
1.98019801980198 返回结果!~Top
6 楼arding123(阿拉丁)回复于 2003-11-01 11:49:47 得分 2
private double Count( int max )
{
double ret = 0.00;
int n = 0;
for ( int i = 1; i <= 100; i++ )
{
n += i;
ret += 1.0/n ;
}
return ret;
}Top
7 楼osborne(做人要本份!)回复于 2003-11-01 11:54:51 得分 2
private double GetTotal(int maxValue)
{
if(maxValue <=0 )
return 0;
double dTotal = 0.0;
double sum = 0.0;
for(int i=1;i <= maxValue; i++)
{
sum += i;
dTotal += 1/sum;
}
return ret;
}Top
8 楼rosy11(rosy)回复于 2003-11-01 11:54:56 得分 0
这个有规律,我记得有公式直接代的。你查一下Top
9 楼loulanlouzhu(桃花潭水深千尺,不及阿勇念你情)回复于 2003-11-01 12:00:52 得分 2
我说说我的想法吧!!
应该还记得小学还是初中有一篇关于小高斯怎么计算1+2+3+....+100的题目吧!!
高斯的计算方法:100(100+1)/2;
应用到这个题目
1/(1+2+3+....+100) = 1/100(100+1)/2 = 2*(1/100-1/(100+1));
100用i代替就是2*(1/i-1/(i+1));
你要的是从1~100的值,所以做个循环相加就可以了!!Top




