A. 用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!
B. 【在線等】c語言程序:對n的階乘求和,n=1到10
分析下程序,階乘可以用遞歸做,也可以用循環做,這里就放上這兩種代碼了。
一.遞歸:
#include <stdio.h>
int f(int t)
{
if (t==1)
return 1;
else
return t*f(t-1);
}
int main()
{
printf("%d ",f(10));
return 0;
}
程序分析:定義一個f函數,利用遞歸的特性,進行運算
10*f(9) = 10*9*f(8) …… 直到到1時返回1
得出結果:
C. C語言問題:階乘之和
#include<stdio.h>
intfun(intn)
{
inti,k=1;
for(i=1;i<=n;i++)
k*=i;
returnk;
k=1;
}
voidmain()
{
inti,m,n,s=0;
scanf("%d%d",&m,&n);
for(i=m;i<=n;i++)
s+=fun(i);
printf("%d",s);
}
D. C語言 編寫程序,從鍵盤上輸入兩個數,求這兩個數的階乘和。
java語言編寫如下:
packagecom.sxl.test;
importjava.util.Scanner;
publicclassTest{
publicstaticvoidmain(String[]args){
System.out.println("請數入第一個數:");
Scannerinput_a=newScanner(System.in);
inta=input_a.nextInt();
System.out.println("請輸入第二個數:");
Scannerinput_b=newScanner(System.in);
intb=input_b.nextInt();
System.out.println(a+"的階乘加上"+b+"的階乘="+(fun2(a)+fun2(b)));
}
privatestaticintfun2(inta){
intresult;
if(a<=1){
result=1;
}else{
result=a*fun2(a-1);
}
returnresult;
}
}
c語言的編譯器沒有安裝。但是演算法和思路是一樣的。
E. 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
運行效果
F. 怎樣用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的階乘的和。
(6)c語言兩數的階乘之和擴展閱讀:
數學函數
所在函數庫為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轉換成字元串並返回該字元串
G. 用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;
}