C语言解决累加和累乘问题
怎么求解累加和累乘问题?
用循环
找出要累加和累乘的数据项及通式。
找出数据项中有规律变化的数据;用循环变量表示。
找出循环变量的起始项数;
确定循环条件;
确定循环体内的语句。
和变量初值一般为0;积变量初值一般为1.
1.
#include <stdio.h>
int main()
{ int k;
float s;
s=0;
for(k=1;k<=100;k++) s+=k;
for(k=1;k<=50;k++) s+=k*k;
for(k=1;k<=10;k++) s+=1.0/k;
printf("s=%4.2f\n",s);
return 0;
}
2.s=1+(1+)+(1++)+........+(1++..........)
#include <stdio.h>
#include<math.h>
int main()
{ double s,t;
int i,n;
s=0;t=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{ t=t+sqrt(i);
s=s+t;
}
printf("s=%6.2f\n",s);
return 0;}
3.求s的值,s=1+x+/2!+/3!+......./n!+......|/n!|<
#include <stdio.h>
#include <math.h>
int main()
{double s,t,f,x;
int i=0;
s=0;t=1;f=1;
scanf("%lf",&x);
while(fabs(t)>=1E-6)
{ s=s+t;
i++;
f=f*i; /*累成求分母*/
t=pow(x,i)/f;} /*累加通式*/
printf("s=%6.2f\n",s);
return 0;}
4.求满足如下条件的最大值n.++..........+<=1000
#include <stdio.h>
#include <math.h>
int main()
{
int i=0;
int s=0;
do
{ i++;
s=s+i*i; /*累加通式*/
}while(s<=1000);
printf("s=%d,n=%d\n",s-i*i,i-1);
return 0;}
- 点赞
- 收藏
- 关注作者
评论(0)