1+2+3+4+...+n=2005003,求n的算法是怎样的!

来源:百度知道 编辑:UC知道 时间:2024/06/01 05:47:10

1+2+3+4+...+n=2005003
n+(n-1)+……+2+1=2005003
两者相加
(n+1)*n=4010006
n=2002

#include <stdio.h>
#define N 2005003

int CalcN(long lSum){
long sum=0;
for (int i=1; sum<lSum; i++)
sum += i;
if (sum != lSum)
return 0;
return i-1;
}

void main(int args, char* argv[]){
int i=CalcN(N);
printf("1+2+3+4+...+n=%ld\n", N);
if (i>0)
printf("其中n=%d\n", i);
else
printf("这是不可能的\n");
}

公式:((首项+末项)*项数)/2
这个公式应该知道吧
((1+n)*n)/2=2005003
(n+n方)/2=2005003
然后解开就行了