『壹』 用c語言編寫程序計算1~n的階乘之和....
錯誤可能有三個,第一你的main前面沒有聲明,缺少個int,第二個可能的錯誤就是沒有按照題目的要求進行多股輸入,你的代碼只是輸入一次n就結束程序,第三個是最主要的錯誤,你的for(j=1;j<=i;j++)
裡面每次循環一次就把p賦值為1,如果輸入3的話,答案是不是10?1*1+1*1*2+1*2*3=10。如果要這樣算的話程序如下:
#include<stdio.h>
int main()
{
int i,j,n;
long p;
long Sn=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{p=1;
for(j=1;j<=i;j++)
{ p=p*j; }
Sn=Sn+p;
}
printf("%ld\n",Sn);
}
『貳』 C語言求一到n的階乘之和,n大於1小於等於16。
#include<stdio.h>
intmain(){
__int64fact=1,i,sum=0;
intn;
scanf("%d",&n);
for(i=1;i<=n;++i){
fact*=i;
sum+=fact;
}
printf("sum=%I64d ",sum);
return0;
}
注意類型 必須是8位元組的整形 用__int64或者用long long (編譯器相關)
『叄』 用C語言求1到N的階層 的累加和
思路:先定義一個函數用來計算一個數的階乘,在從1到N循環依次就其累加和,最後輸出累加和即可。
參考代碼:例如求1到3的階乘累加和。
#include "stdio.h"
int fun(int n){
if(n==1) return 1;
else return n*fun(n-1);
}
#include "math.h"
int main() {
int n,sum=0,i;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=fun(i);
printf("%d\n",sum);
return 0;
}
/*
運行結果:
3
9
*/
『肆』 c語言求1到n階乘的和用遞歸
1、打開vc6.0,新建一個vc項目,添加頭文件,添加一個空的main函數,這里先定義一個用來求階乘的函數,函數的參數為i,階乘就是不斷的和前面的一個數相乘,這里就是不斷和fact函數相乘,之後編寫主函數的內容:
『伍』 怎樣用C語言計算1到10的階層的和
C語言中實現階乘的計算可以採用遞歸或者循環,通常循環用的比較多,循環可以採用while循環和for循環等。
下面以for循環為例實現1-10的階乘的和的計算,代碼如下:
int i,sum=1,S=0;
for(i=1;i<=10;i++)
{
sum=sum*i;
S=S+sum;
}
上述的變數S在運行結束後的結果值即為1-10的階乘的和。
(5)c語言1到n的階乘和擴展閱讀:
數學函數
所在函數庫為math.h、stdio.h、string.h、float.h
int abs(int i) 返回整型參數i的絕對值
double atof(char *nptr) 將字元串nptr轉換成浮點數並返回這個浮點數
double atoi(char *nptr) 將字元串nptr轉換成整數並返回這個整數
double atol(char *nptr) 將字元串nptr轉換成長整數並返回這個整數
char *ecvt(double value,int ndigit,int *decpt,int *sign),將浮點數value轉換成字元串並返回該字元串