调和级数部分和

  正整数的倒数构成调和级数的项。我们先求调和级数的前n项之和,再求符号变化情形的代数和。

1.求和

     s=1+1/2+1/3+.....+1/n(正整数n从键盘输入)

解:设置k循环k=1,2,...,n,k作为每一项的分母,在循环中实施s=s+1.0/k.

#include<stdio.h>

void main()

{

int k,n;float s=0;

printf("input n: ");

scanf("%d",&n);

for(k=1;k<=n;k++)

     s=s+1.0/k;

printf("s=%9.6f",s);

}

运行程序,输入n=100,得

s=5.187378

2.求代数和

s=1-1/2+1/3-1/4+...+_1/n(正整数n从键盘输入,和式中各项符号一正一负)

解:设置k循环k=1,2,...,n,k作为每一项的分母,当k为奇数时,即满足k%2=1时,实施s=s+1.0/k;其他即当k为偶数时,实施s=s-1.0/k.

#include<stdio.h>

void main()

{ int k,n,h;

  float s=0;

 printf("input n: ");

  scanf("%d",&n);

 printf("s=1-1/2+1/3-1/4+.....");

for(k=1;k<=n;k++)

    if(k%2==1)

     { s+=1.0/k;h=1;}

    else

     { s-=1.0/k;h=0;}

if(h==1)print("+1/%d=",n);

else printf("-1/%d=",n);

    printf("%9.6f/n",s);

   }

运行程序,输入n=100,得

s=1-1/2+1/3-1/4+......-1/100=0.688172

3.求代数和

s=1-1/2+1/3+1/4-1/5+1/6+1/7+1/8-1/9+...+_1/n(正整数n从键盘输入,各项符号变化规律为:一正一负,二正一负,三正一负,类推续延)

解:设置外循环k=1,2,3,....,体现加运算号的个数(k约定到10000,必要时可增减);k次加运算后,实施一次减运算

。每次加或减运算前,分母t增1.最后一项的符号设置变量h来表征

#include<math.h>

#include<stdio.h>

void main()

{ int k,n,m,t,h;float s=0;

   h=0;t=0;

  printf("input n: "); scanf("%d",&n);

 println("s=1-1/2+1/3+1/4-1/5+...");

 for(k=1;k<=10000;k++)

    { for(m=1;m<=k;m++)

       { t++;s+=1.0/t;

      if(h==1) break;

     t++;s-=1.0/t;

    if(t==n)break;}

  if(h==1) printf("+1/%d= ",n);

    else printf("-1/%d= ",n);

 printf("%9.6f/n",s);

}

运行程序,输入n=100,得

s=1-1/2+1/3+1/4-1/5+...+1/100=3.029625

代数和表现为所求和式中各项的符号依据某种规律改变。因而,求代数和的关键在于对加减符号的规律进行有针对性的处理。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值