求C语言编写等差数列求和的代码?

Python018

求C语言编写等差数列求和的代码?,第1张

等差数列求和求和有两种方法,第一种是数值循环相加,第二种是利用公式:

Sn=n*a+n*(n-1)*d/2,其中a为数列首项

代码如下:

#include <stdio.h>

int main(void)

{

int a,m,d,sum

int s=0,n=1

do  {

printf("清输入等差数列首项值a,项数m,数列差值d\n")

scanf("%d,%d,%d",&a,&m,&d)

}while(a<1||m<1||d<1)

while(n<=m)

{

s+=a+(n-1)*d

n++

}

sum=m*a+d*(m*(m-1))/2    //sum为通过公式,求等差数列的和

printf("s=%d\nsum=%d\n",s,sum)   //s为通过数据循环相加得到的等差数列的和

return 0

}

上图是首项值为1,数列差值为分别1和2的情况下的求和结果,可以看出两种不同求和方式得到结果一致。

#include <stdio.h>

int main()

{

double sum=0,t=1

int i,n

scanf("%d",&n)

for(i=1i<=ni++)

{

t/=i

sum+=t

}

printf("%lf",sum)

return 0

}

#灰色预测模型GM(1,1)

#用法:

#假设数列1 2 3 4 5.5 6 7.5 为已知数据,你要预测后面3项,gm11([1 2 3 4 5.5 6 7.5],10) # 10=7+3

# 序列输入格式为:x<-c(1,2,3,4,5.5,6,7.5)

gm11<-function(x,k)

{

#x为行向量数据

#做一次累加

n<-length(x)

x1<-numeric(n)

for(i in 1:n)

{

x1[i]<-sum(x[1:i])

}

#x1的均值数列

z1<-numeric(n)

m<-n-1

for(j in 1:m)

{

z1[j+1]<-(0.5*x1[j+1]+0.5*x1[j])

}

Yn=t(t(x[2:n]))

B<-matrix(1,nrow=n-1,ncol=2)

B[,1]<-t(t(-z1[2:n]))

#solve(M)求M的逆

#最小二乘法求解参数列

u<-solve(t(B)%*%B)%*%t(B)%*%Yn

a<-u[1]

b<-u[2]

#预测

x2<-numeric(k)

x2[1]<-x[1]

for(i in 1:k-1)

{

x2[1+i]=(x[1]-b/a)*exp(-a*i)+b/a

}

x2=c(0,x2)

#还原数据

y=diff(x2)

y

}

#调用函数

x<-c(1,2,3,4,5.5,6,7.5)

gm11(x,10)