等差数列求和求和有两种方法,第一种是数值循环相加,第二种是利用公式:
创新互联专注于新巴尔虎左网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供新巴尔虎左营销型网站建设,新巴尔虎左网站制作、新巴尔虎左网页设计、新巴尔虎左网站官网定制、小程序定制开发服务,打造新巴尔虎左网络公司原创品牌,更为您提供新巴尔虎左网站排名全网营销落地服务。
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(a1||m1||d1);
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的情况下的求和结果,可以看出两种不同求和方式得到结果一致。
includestdio.h int compute(int,int,int); void main() { int a1,d,n,sn; printf("输入a1:"); scanf("%d",a1); printf("输入等差d:"); scanf("%d",d); printf("输入项数n:"); scanf("%d",n); sn=compute(a1,d,n); printf("前n项和为%d",sn); } int compute(int a1,int d,int n) { return 2/(n*(a1+((n-1)*d))); } 没有测试
int fun(int a){ int b[9],i,j,k=0; //10个数字之间的差共有9个所以b数组为9 j=a[1]-a[0]; //现确定下等差 for(i=0;i9;i++) b[i]=a[i+1]-a[i]; //将a数组中的前后两项的数的差值存入b数组中 for(i=0;i9;i++){ if(j==b[i]) //判断b数组中的数是否于开始确定的差值相等 k++; } if(k==9) //判断是否所有的差值都相等 return 1;elsereturn 0;}main(){ int a[10],i,j; for(i=0;i10;i++) scanf("%d",a[i]); //输入10个数字 j=fun(a); //调用函数fun if(j==1) printf(" yes\n"); else printf(" no\n");}你没说要判断的数列是多长我自己定义了10个,你可以自己改。
#include"stdio.h"
int main()
{
int i,n,a1,d;/*n表示你想要显示的数字个数,a1表示等差数列首项,d表示公差*/
printf("请输入你希望得到数列项数:");scanf("%d",n);
printf("请输入首项和公差:");scanf("%d%d",a1,d);
for(i=1;i=n;i++){
printf("%d ",a1);
a1+=d;
}
}
希望对你有所帮助
从首项开始, 每次递加一个固定值,就是等差数列了
用for循环很容易做到。
比如 输入首项,和差值,打印前十项的代码可以写作:
#include stdio.h
int main()
{
int a, n, i;
scanf("%d%d",a,n);
for(i = 0; i 10; i ++)
{
printf("%d ", a);
a+=n;
}
printf("\n");
return 0;
}
#includestdio.h
main()
{
int a,b,c,d,i,sum=0;
for(a=1;a=26;a++)
for(d=1;d=26;d++)
{ /*等差数列前四项之和*/
b = a + a + d + a + 2 * d + a + 3 * d;
/*b = 4 * a + 6 * d */
if(b!=26)
continue;
else
{ /*等差数列前四项之积*/
c = a * (a + d) * (a + 2 * d) * (a + 3 * d);
if(c!=880)
continue;
else
for(i=0;i6;i++)
{
printf("%d,",a+i*d);
sum=sum+(a+i*d);
}
}
}
printf("\n数列的前6项的和:%d\n",sum);
}