利用迴圈求數列的和
阿新 • • 發佈:2019-01-24
<1>1+2+3+4+……+100之和
方法一:
#include<stdio.h>
int main(void)
{
int i,sum=0;
for(i=1;i<=100;i++)
sum+=i;
printf("sum=%d\n",sum);
}
方法二:
#include<stdio.h>
int main(void)
{
int i,sum=0;
while(i<=100)
{
sum+=i;
i++;
}
printf("sum=%d\n",sum);
}
方法三:
方法四:(直接輸出,可以用數學方法就不用程式碼)#include<stdio.h> int main(void) { int i,sum=0; do { sum+=i; i++; }while(i<=100); printf("sum=%d\n",sum); }
#include<stdio.h>
int main(void)
{
int sum=0;
printf("sum=%d\n",100+100*99/2);
}
等差數列前n項求和<2>1+1/2+1/3+……+1/100之和
#include<stdio.h>
int main(void)
{
int i;
double sum=0;
for(i=1;i<=100;i++)
sum+=1.0/i;
printf("sum=%lf\n",sum);
}
<3>1+1/2-1/3+1/4-1/5……+1/100之和#include<stdio.h>
int main(void)
{
int i,f=1;
double sum=0;
for(i=2;i<100;i++)
{
sum+=1.0/i*f;
f=-f;
}
printf("sum=%lf\n",sum);
}
<4>1-1/2+1/3-1/4+1/5……-1/100之和
#include<stdio.h> int main(void) { int i,f=-1; double sum=0; for(i=2;i<100;i++) { sum+=1.0/i*f; f=-f; } printf("sum=%lf\n",sum); }
<5>1+1/(1+2)+1/(1+2+3)+1/(1+2+3+4)……-1/(1+2+3……+100)之和
#include<stdio.h>
int main(void)
{
int i,t=0;
double sum=0;
for(i=2;i<100;i++)
{
t+=i;
sum+=1.0/t;
}
printf("sum=%lf\n",sum);
}
<6>用泰勒級數計算e的近似值,直到最後一項不大於10^-6結束。(e=1+1/1!+1/2!+1/3!+……+1/n!)
#include<stdio.h>
int main(void)
{
int i=1,t=1;
double sum=1;
while(1.0/t>=1e-6)
{
t=t*i;
sum+=1.0/t;
i++;
}
printf("e=%lf\n",sum);
}
<7>計算π/4≈1-1/3+1/5-1/7+……,求π的近似值。
#include<stdio.h>
int main(void)
{
int i=1,f=1;
double pi=0;
while(1.0/i>=1e-6)
{
pi+=1.0/i*f;
i+=2;
f=-f;
}
printf("π=%lf\n",pi*4);
}
<8>計算3/2+5/3+8/5……前二十項和。
#include<stdio.h>
int main(void)
{
int i;
double sum=0,a=2,b=3,t;
for(i=0;i<20;i++)
{
sum+=b/a;
t=b;
b=a+b;
a=t;
}
printf("sum=%lf\n",sum);
}
<9>計算a+aa+aaa+aaaa+……+aaa……aaa(n個a)。求a=2時前六項之和。
#include<stdio.h>
int main(void)
{
int i;
double sum=0,a=2;
for(i=0;i<6;i++)/*前六項*/
{
sum+=a;
a=a*10+a;/*更新a*/
}
printf("sum=%lf\n",sum);
}