求前n項和c語言
⑴ c語言如何用數組求Fibonacci數列的前N項和
#include<stdio.h>
int main()
{
int i,f[21]={1,1};//對最前面兩個元素f[0]和f[1]賦初值1
for(i=2;i<21;i++)
{
f<i>=f[i-2]+f[i-1];//先後求出f[2]~f[20]的值
}
for(i=0;i<21;i++)
{
if(i%5==0)//控制每輸出5個數後換行
{
printf(" ");
}
printf("%d ",f<i>);//輸出一個數
}
printf(" ");
return 0;
}
(1)求前n項和c語言擴展閱讀:
printf()函數的調用格式為:printf("<格式化字元串>",<參量表>)。
其中格式化字元串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。
參量表是需要輸出的一系列參數,其個數必須與格式化字元串所說明的輸出參數個數一樣多,各參數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。
比如:
int a=1234;
printf("a=%d ",a);
輸出結果為a=1234。
scanf()是C語言中的一個輸入函數。與printf函數一樣,都被聲明在頭文件stdio.h里,因此在使用scanf函數時要加上#include<stdio.h>。
int scanf(const char*restrict format,...);
函數scanf()是從標准輸入流stdin(標准輸入設備,一般指向鍵盤)中讀內容的通用子程序,可以說明的格式讀入多個字元,並保存在對應地址的變數中。
如:
scanf("%d%d",&a,&b);
函數返回值為int型,如果a和b都被成功讀入,那麼scanf的返回值就是2。
⑵ C語言求前n項和,不知道哪裡錯了
經鑒定,LZ對於C語言中的數組/指針以及函數的相關知識點還沒掌握好
這一題的正確思路應該是,設計一個函數int feibo(int n),該函數的作用是返回斐波那契數列第n項的值。主函數中獲取用戶輸入的N,然後一個循環輸出斐波那契的前N項
如果需要的話請追問,我可以根據我給你的思路提供相關代碼供你參考
⑶ c語言求數列前n項和
main(){
int i,n,s=1,f[]={0,1,1};
printf("Please input the number of terms:");
scanf("%d",&n);
if(n==0){s=0;f[2]=0;}
for (i=2;i<=n;i++)
{ f[2]=f[1]+f[0];f[0]=f[1];f[1]=f[2];
s+=f[1];
}
printf("f(%i)=%i\n",n,f[2]);
printf("Sum(%i)=%i\n",n,s);
scanf("%d");
}
⑷ C語言:求5/6+11/12+19/20+29/30+...的前N項的和,咋寫
分析:
1) 定義變數n,scanf("%d",&n); if ( n<0 || n>99999 ) { printf("輸入錯誤。 "); break; }
2)定義double類型累加和變數s,因為多項式中有分式,因此需要浮點類型變數保存結果
printf("%.6lf ",s); 由於需要多次求不同n值的和,因此每次求和之前需要強制清0
3)多組測試,用循環結構,由於不關心循環次數,選用while循環:
while ( 1 ) { ...; if ( n==0 ) break; }
4)分析多項式:一般多項式求和採用for循環,利用循環變數i的取值計算相關多項式分子和分母
每項分子和分母都是整型數據,因此可以分別用整型變數求,分子fz,分母fm
分子規律是當前分母取值減1,分母規律i=0,1,2,3,...,n時取值2x3,3x4,4x5,...,(i+2)x(i+3)
注意,直接用整數相除需要將分子或分母中至少一個強制數據類型轉換成浮點數,否則只能得到整型結果。
因此程序為:
#include<stdio.h>
void main() { int n,i,fz,fm; double s;
while ( 1 ) { //無限循環,退出由循環體中條件語句完成
printf("請輸入N(1~99999):"); scanf("%d",&n); if ( n==0 ) break;
if ( n<0 || n>99999 ) { printf("輸入錯誤。 "); break; }
s=0; for ( i=0;i<n;i++ ) { fm=(i+2)*(i+3); fz=fm-1; s+=(double)fz/fm; }
printf("%.6lf ",s);
}
printf("程序結束運行。 ");
}
⑸ C語言 求多次運算前N項的和。
#include<stdio.h>
void main(void)
{
int i1=0,i2=0;
printf("輸入次數: ");
scanf("%d",&i1);
for(int i=1;i<=i1;i++)
{
scanf("%d",&i2);
int sum1=0;
for(int j=1;j<=i2;j++)
{sum1+=j;
}
printf("%d\n",sum1);
}
}
差不多就這樣吧,DOS下輸入是有緩沖區的,可以達到目的,windows下可能還要調調;
⑹ C語言 求多次運算前N項的和。
#include<stdio.h>
#include<stdlib.h>
intmain()
{
intcount;
intnum;
printf("輸入運算次數:");
scanf("%d",&count);
for(inti=0;i<count;i++)
{
printf("輸入第%d個運算的項數:",i+1);
scanf("%d",&num);
printf("前%d項和為:%d ",num,(num*(num+1))/2);
}
system("pause");
return0;
}
⑺ C語言編程 求序列前N項和
2/1+3/2+5/3+8/5+...這個數列每項的分子、分母分別是Fibonacci數列的後一項與前一項。求這一數列前N項的和可採取N由鍵盤輸入,設一循環按Fibonacci數列規律求出分子與分母,將將分式轉換為浮點除法求值累加獲得最後結果。舉例代碼如下:
#include"stdio.h"
intmain(intargc,char*argv[]){
inta,b,i,N;
doubles;
printf("InputN(int0<N<44)... N=");//大於43時int范圍溢出
if(scanf("%d",&N)!=1||N<1||N>43){//保證輸入正確
printf("Inputerror,exit... ");
return0;
}
for(s=0.0,a=2,b=i=1;i<=N;i++){//由此循環計算
s+=a/(b+0.0);//當前項累加給s
a+=b;//下一項的分子是當前項分子分母之和
b=a-b;//下一項分母是當前項分子
}
printf("Theresultare%.2f(whenN=%d) ",s,N);
return0;
}
試運行結果如下圖:
⑻ C語言,輸入n,計算前n項和
#include<stdio.h>
intmain()
{
inti,n;
inta1,b1,a2,b2,ai,bi;
floatsum,t=1.0;
a1=2,b1=1;
a2=3,b2=2;
sum=t*a1/b1+t*a2/b2;
scanf("%d",&n);
for(i=2;i<n;i++)//從第3項開始
{
ai=a1+a2;
bi=b1+b2;
sum+=t*ai/bi;
a1=a2,b1=b2;
a2=ai,b2=bi;
}
printf("前%d項和=%f ",n,sum);
return0;
}
示例運行結果:
2
前2項和=3.500000
3
前3項和=5.166667
10
前10項和=16.479906
⑼ C語言求前n項和,不知道哪裡錯了
經鑒定,LZ對於C語言中的數組/指針以及函數的相關知識點還沒掌握好
這一題的正確思路應該是,設計一個函數int
feibo(int
n),該函數的作用是返回
斐波那契
數列第n項的值。主函數中獲取用戶輸入的N,然後一個循環輸出斐波那契的前N項
如果需要的話請追問,我可以根據我給你的思路提供相關代碼供你參考