今天给各位分享c语言计算等比数列的知识,其中也会对c语言计算等差数列求和进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
1、c语言求编程:等 比 数 列2、C语言求等比数列2的0次方,2的1次方,2的2次方,…,2的63次方前64项的和。3、用C语言编写:计算等比数列(a0+a0*q+a0*q^2+…+a0*q^n-1)4、c语言求等比数列之和?
c语言求编程:等 比 数 列
#include stdio.h
void main()
{ float q[50]={0};
double sum=1.0;
int n[50]={0};
int i=0;
int x=0;
int y=0;
while(i2)
{scanf(“%d %f”,n[i],q[i]);
i++;
}
for(i=0;i50;i++)
{
if(0==q[i])
break;
}
double dum=0;
for(x=0;xi;x++)
{for(y=0;yn[x];y++)
{
sum=1+sum*q[x];
}
printf(“%0.3f\n”,sum);
sum=1;
}
}
C语言求等比数列2的0次方,2的1次方,2的2次方,…,2的63次方前64项的和。
给你提供三种方法,你自己根据其优劣进行选择。
#include stdio.h
#define N 64
/*方法一*/
unsigned _int64 fun_1( )
{
unsigned _int64 sum = 0, item = 1;
int i;
for(i = 0; i N; i++)
{
sum += item;
item *= 2;
}
return sum;
}
/*方法二*/
unsigned _int64 fun_2( )
{
unsigned _int64 sum = 0;
int i;
for(i = 0; i N; i++)
sum = sum * 2 + 1;
return sum;
}
/*方法三 2^0+2^1+2^2+……+2^(n-1) = 2^n – 1,因此直接求2^64-1即可,计算结果的二进制即为64个连续的1,即printf(“%I64u\n”, 0xffffffffffffffff); 如果要用算法去计算的话,则先求s=pow(2, 64),然后再求s – 1,但2^64对于64位整型变量都会溢出哦,不考虑溢出的话,可如下*/
unsigned _int64 pow(int x, int y) /*求x^y*/
{
unsigned _int64 tmp;
if(y == 0) return 1;
tmp = pow(x, y / 2);
if(y % 2 == 0) return tmp * tmp;
else return tmp * tmp * x;
}
unsigned _int64 fun_3( )
{
return pow(2, N) – 1;
}
void main()
{
printf(“%I64u\n”, fun_1()); /*方法一*/
printf(“%I64u\n”, fun_2()); /*方法二*/
printf(“%I64u\n”, 0xffffffffffffffff); /*方法三*/
}
用C语言编写:计算等比数列(a0+a0*q+a0*q^2+…+a0*q^n-1)
#includestdio.h
#includemath.h
void main()
{
int a,n,q,i;
double m,s=0;
printf(“请输入a,n,q “);
scanf(“%d,%d,%d”,a,n,q);
for(i=0;in;i++)
{
m=a*pow(q,i);
s+=m;
}
printf(“%lf\n”,s);
}pow函数没定义,要加math.h头文件s没有初始化,要加初始值s=0循环部分也有问题,具体如上
c语言求等比数列之和?
代码文本:
#include “stdio.h”
int main(int argc,char *argv[]){
int n,s,i,t;
printf(“Enter n(int 0n)…\nn=”);
if(scanf(“%d”,n)!=1 || n1){
printf(“Input error, exit…\n”);
return 0;
}
for(s=0,t=1,i=0;in;s+=t*=2,i++);
printf(“The result is %d.\n”,s);
return 0;
}
c语言计算等比数列的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言计算等差数列求和、c语言计算等比数列的信息别忘了在本站进行查找喔。