❶ 用c語言求1~20的階乘之和!
/**
**程序描述:求求1~20的階乘之和。
**演算法思路:先求出每一項的階乘值,然後將所有項的階乘值相加。
*/
#include<stdio.h>
#defineN20
typedefunsignedlonglonguInt64;//自定義類型
//求出每一項階乘值的函數
uInt64fact(intn)
{
inti;
uInt64s;
for(i=s=1;i<=n;i++)
s*=i;//從1開始循環累加相乘
returns;
}
intmain()
{
uInt64s;
inti;
for(i=1,s=0;i<=N;i++)
s+=fact(i);//從第1項開始循環累加每一項的階乘值
printf("1!+2!+3!+……+20!=%llu ",s);
return0;
}

❷ c語言階乘求和
#include<stdio.h>
voidmain(){
inti,n,k=1,s=0;
scanf("%d",&n);
for(i=1;i<=n;i++)
{k*=i;s+=k;}
printf("%d",s);
}
//運行示例:

❸ 用c語言編程,求從1的階乘一直加到20的階乘。
1、首先打開C語言編輯器,新建一個c語言的文件,導入頭文件並設置一個主函數:

❹ c語言求1到n的階乘的和
最基礎的思路,是逐個求階乘,並累加。不過由於階乘是從1乘到n,所以每個數都單獨求一次階乘,會有很多重復運算,影響效率。
所以更快捷的方式是,在上一個數的階乘基礎上,直接乘上本身,得到當前數的階乘。
以此為主導,代碼如下:
#include <stdio.h>
int main()
{
    int n, i, n1 = 1,s=0;
    scanf("%d",&n);//輸入n值。
    for(i=1; i <= n; i ++)
    {
        n1*=i;//計算i的階乘。
        s+=n1;//累加。
    }
    printf("%d\n", s);//輸出結果。
}
❺ C語言中階乘相加
#include<stdio.h>
main()
{
int a;
double b=1,c=1,d=0;
printf("\nplease input a number\n");
scanf("%d",&a);
for(;b<a;++b); /*這里的for(;b<a;++b); 分號要去掉:b<=a;
就是說你輸入3的話,只有1*2,應該是1*2*3,其他沒任何問題*/
{
c=c*b;
d+=c;
}
printf("\n%f",d);
}
/*這里的for(;b<a;++b); 分號要去掉:b<=a;
就是說你輸入3的話,只有1*2,應該是1*2*3,其他沒任何問題*/
❻ 1到20階乘的和用c語言表達
#include <stdio.h>
long jiecheng(int x)
{
long int i,k=1;
for(i=1;i<=x;i++)
k=k*i;
return k;
}
int main()
{
long int j,k=0;
int i;
for(i=1;i<=20;i++)
{
j=jiecheng(i);
k+=j;
}
printf("%ld ",k);
}

(6)求c語言階乘相加擴展閱讀:
使用其他方法實現求1到20階乘的和:
public class Main{
public static void main(String[] args){
int i,j;
int sum=0;
int a=1;
for(i=1;i<=20;i++){
for(j=1;j<=i;j++){
a*=j;
}
sum+=a;
}
System.out.print("sum=1!+2!+3!+...+20!="+sum);
}
}
❼ C語言怎樣求1到100的階乘和
操作方法01
首先打開Dev C++軟體,新建C語言控制台項目,如下圖所示

❽ C語言怎麼求n階乘的和
1
思路
關鍵是寫出求階乘的函數
2
代碼
#include<stdio.h>
//求階乘
intfactorial(intn){
if(n==0||n==1)
return1;
else
returnn*factorial(n-1);
}
intmain(){
intn;
printf("求1!+2!+...+n!的結果
輸入n的值:");
scanf("%d",&n);
intsum=0;
for(inti=1;i<=n;i++){
sum+=factorial(i);
}
printf("結果為:%d
",sum);
getchar();
getchar();
return0;
}
3
運行效果

❾ c語言求階乘累加和
題目中數據很大
於是我們有了高精度演算法
思路是什麼呢:
一個數組裡面每一位存的是十進制數三位(也可以只存一位,但是比較慢)
也可以理解成一千進制
這樣能模擬大整數的乘法、加法
#include<stdio.h>
#include<string.h>
#definemax(a,b)(a>b?a:b)
intn;
FILE*input,*output;
structbigint
{
intlen;
intnum[1100];
}fac,sum;
voidmul(intvalue){//高精度乘單精度
inti;
for(i=1;i<=fac.len;i++)
fac.num[i]=fac.num[i]*value;//每個數位乘上數
for(i=1;i<=fac.len;i++)
if(fac.num[i]>=1000){//逢千進一
fac.num[i+1]+=fac.num[i]/1000;fac.num[i]%=1000;
}
if(fac.num[fac.len+1])fac.len++;//位數可能會增加,而且最多增加1
}
voidadd()//給sum加上fac的值
{
inti;
//由於此時fac永遠大於sum所以不用判斷sum的長度
for(i=1;i<=fac.len;i++)
sum.num[i]+=fac.num[i];//每一位加上fac的值
for(i=1;i<=fac.len;i++)
if(sum.num[i]>=1000){//逢千進一
sum.num[i+1]++;sum.num[i]-=1000;//因為加法運算不可能往前進2
}
sum.len=fac.len;
if(sum.num[sum.len+1])sum.len++;
}
voidout()//輸出
{
inti;
for(i=sum.len;i>=1;i--)
{
if(i<sum.len)//壓位高精度一定要判斷位數
{//因為如果不是第一位,其他要補0,因為如果這個數是1001,就會變成11
if(sum.num[i]<10)fprintf(output,"00");
elseif(sum.num[i]<100)fprintf(output,"0");
}
fprintf(output,"%d",sum.num[i]);
}
fputc(' ',output);
}
intmain(){
input=fopen("factor.in","r");
output=fopen("factor.out","w");
memset(fac.num,0,sizeoffac.num);
memset(sum.num,0,sizeofsum.num);
fscanf(input,"%d",&n);
inti;
fac.len=sum.len=1;//初始賦成1
fac.num[1]=sum.num[1]=1;
for(i=2;i<=n;i++)
{
mul(i);
add();
}
out();
fclose(input);fclose(output);
return0;
}
❿ 用C語言怎樣求階乘之和
用C語言怎樣求階乘之和?      思路 編個函數求n的階乘的
  遞歸方法
  int f(int n){
  if(n==1) return 1;
  else return n*f(n-1);
  }
  再在主方法裡面編個循環求階乘之和
  int sum=0;
  for(i=1;i<=n;i++){
  sum=sum+f(i);
  }
      怎樣用C語言求500000的階乘?     
 先寫兩個大數相乘的函數,為了提高效率,定義的數組每個存9位,一個個乘時間肯定是不夠的,最好這樣比如說先求250 000個積,再用這些積求125 000個積,。。。用空間換取時間
  就差不多了
      C語言用"for"怎麼算1~20!階乘之和啊?     
 回答的都很好~
      c語言:1到100的階乘之和,100用N輸入     
 #include <stdio.h>
  #include <stdlib.h>
  #define MAX 200
  int f[MAX]={0},sum[MAX]={0};大整數,每個int存一個十進制數字,從低位到高位
  void main(void)
  {
  int i,j,n;
  f[0]=1;
  printf("Input N: ");
  scanf("%d",&n);輸入N
  for(j=1;j<=n;j++)
  {
  calc factorial,每位乘j
  for(i=0;i<200;i++)
  f[i]*=j;
  進位
  for(i=0;i<199;i++)
  {
  f[i+1]+=f[i]/10;
  f[i]%=10;
  }
  add to sum
  for(i=0;i<200;i++)
  sum[i]+=f[i];
  sum進位
  for(i=0;i<199;i++)
  {
  sum[i+1]+=sum[i]/10;
  sum[i]%=10;
  }
  }
  從最高位開始輸出
  先找到最高位
  printf("\n\nThe result is:\n");
  i=199;
  while(sum[i]==0)
  i--;
  while(i>=0)
  printf("%d",sum[i--]);
  system("pause");
  }
      用c語言怎樣編1到10的階乘和     
 用循環
  int sum=1;
  for(int i=1;i<=10;i++)
  sum=sum*i;
  或者用遞歸函數,可能你還沒有學
C語言怎麼求0 2 4 6 .2n的階乘之和啊     
 
    #include <stdio.h>求n!的值int func(int n){    if(n == 0 || n==1)        return 1;    else        return n*func(n-1);}int main(){    int n,i,sum=0;    printf("輸入n的值: ");    scanf("%d",&n);    if(n<=0)    {        printf("Input Error!\n");        return -1;    }    for(i=0;i<=n;i++)    {        sum+=func(2*i);    }    printf("0!+2!+4!+...+(2n)!= %d\n",sum);    return 0;} 示例運行結果:  
輸入n的值: 3
   
 0!+2!+4!+...+(2n)!= 747
   
 輸入n的值: 2
   
 0!+2!+4!+...+(2n)!= 27
      c語言程序設計求一的階乘,三的階乘,五的階乘之和     
 
    #include <stdio.h>int fac(int n);int main(){ int sum = 0;   sum = fac(1) + fac(3) + fac(5); printf("%d",sum);   return 0;}int fac(int n){    int i = 0; int sum = 0;   for(; i<=n; i++)     sum += i;   return sum;}   
 
      幫我用c語言編個求兩個階乘之和的程序     
 int GetN(int x)
  {
  if(x=1)
  return x;
  else
  return x*GetN(--X);
  }
  main()
  {
  int a,b;
  Scanf("%d",&a);
  Scanf("%d",%b);
  printf("%d",GetN(a)+GetN(b));
  }
      c語言階乘用循環句兩個for怎樣求和?     
 輸入以下程序可實現兩個for求和:
   
 #include<stdio.h>
   void main()
   {
   int sum=0,n,m=1,i,j;
   scanf("%d",&n);
   for(i=1;i<=n;i++)
   {
   for(j=1,m=1;j<=i;j++)
   m*=j;
   sum+=m;
   }
   printf("n的階乘=%d\n",sum);
   }
      急求C語言階乘的和     
 #include "stdio.h"
  main()
  {
  int i,j,sum1,sum=0,n;
  printf("請輸入n:\n");
  scanf("%d",&n);
  for(i=1;i<=n;i++)
  {
  sum1=1;
  for(j=1;j<=i;j++)
  {
  sum1=sum1*j;
  }
  sum=sum+sum1;
  }
  if(n==0) sum=1;
  printf("\n階乘的和為:%d",sum);
  }
  內層for語句是求i的階乘,外層for語句是求0!+1!+……+n!
