Ⅰ c語言 輸入三個整數,用遞歸函數求三整數階乘之和
正整數N的階乘:
import
java.util.Scanner;
//遞歸算階乘
public
class
Demo2
{
//定義一個算階乘的方法jieCheng()
public
static
int
jieCheng(int
n){
if(n==1){
//n值為1時返回1,跳出方法,停止計算
return
1;
}
return
n*jieCheng(n-1);
//當前值*(當前值-1)*(當前值-1-1)...*1
}
//main方法測試
public
static
void
main(String[]
args)
{
Scanner
input=new
Scanner(System.in);
System.out.print("請輸入您要計算的階乘數:");
int
n=input.nextInt();
System.out.println(n+"的階乘結果是"+jieCheng(n));
}
}
1到正整數N的累加:
import
java.util.Scanner;
public
class
Demo3
{
//main方法測試
public
static
void
main(String[]
args)
{
Scanner
input=new
Scanner(System.in);
System.out.print("請輸入要計算的數:");
int
n=input.nextInt();
System.out.println("1到"+n+"的和是:"+he(n));
}
//定義一個算階乘的方法he()
public
static
int
he(int
n){
if(n==1){
return
1;
}
return
n+he(n-1);
}
}
Ⅱ c語言 使任意三個數的階乘相加
#include<stdio.h>
void main()
{
long int jies(int a);
long int k,l,m;
printf("輸入要求階乘的三個數,用空格隔開\n");
scanf("%d%d%d",&k,&l,&m);
long int sum;
sum=jies(k)+jies(l)+jies(m);
printf("sum=%d\n",sum);
}
long int jies(int a)
{
long int j;
if(a<0)
printf("輸入有誤");
else if(a==1||a==0)
return 1;
else
j=a*jies(a-1);//遞歸演算法
return j;
}
Ⅲ 用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!
Ⅳ 急!!!c語言,求這樣一個三位數,該三位數等於其每位數字的階乘之和。
if(i=jiech(a)+jiech(b)+jiech(c))
改成
if(i==jiech(a)+jiech(b)+jiech(c))
結果如下
#include <stdio.h>
main ()
{
int jiech (int k);
int a, b, c, i;
for (i = 100; i <= 999; i++)
{
a = i / 100;
b = i % 100 / 10;
c = i % 10;
if (i == jiech (a) + jiech (b) + jiech (c))
printf ("%4d\改圓n", i);
}
}
jiech (int k)
{
int n = 1, m = 1;
while (n <脊團= k)
{
m = m * n;
n++;
}
return (m);
}
答案核野塌 145
Ⅳ 用c語言怎麼寫1到5的階乘的和
代碼如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include"stdio.h"
#include"stdlib.h"
int main()
{
int n = 0;
printf("請輸入一個數字: ");
scanf("%d",&n);
int i = 0;
int ret = 1;
int sum = 0;
for (i = 1; i <= n; i++)
{
ret *= i;
sum += ret;
}
printf("%d ",sum);
system("pause");
return 0;
}
(5)c語言求3的階乘之和擴展閱讀
階乘計算功能關鍵演算法
利用遞歸方法求5!
用遞歸方式求出階乘的值。遞歸的方式為:
5!=4!*5
4!=3!*4
3!=2!*3
2!=1!*2
1!=1
即要求出5!,先求出4!;要求出4!,先求出3! … 以此類推。
注意:定義一個函數(或方法),用於求階乘的值。
在主函數(或主方法)中調用該遞歸函數(或方法),求出5的階乘,並輸出結果。
packageThird;
publicclassone {
publicstaticvoidmain(String args[]){
intn =5;//輸入n的值
//n的階乘的值為:factorial(n);
System.out.println("5的階乘是:"+ factorial(n));
}
publicstaticintfactorial(intn){//階乘求解函數
if(n ==0){//判斷傳進來的n是否為0,若為零返回階乘為1
return1;
}
returnn*factorial(n-1);//重新調用函數,繼續判斷n-1是否為零,
}
}
Ⅵ 如何用c語言分別輸出1到5的階乘,並且輸出它們的和
#include<stdio.h>
intjc(intn);//計算n的階乘
intmain()
{
intn,jcn,sum=0;
for(n=1;n<=5;n++)
{
jcn=jc(n);
printf("%d的階乘為:%d
",n,jcn);
sum=sum+jcn;
}
printf("總和為:%d
",sum);
return0;
}
intjc(intn)//計算n的階乘
{
inti,r=1;
for(i=1;i<=n;i++)
{
r=r*i;
}
returnr;
}
Ⅶ c語言求1到n的階乘之和s
最基礎的思路,是逐個求階乘,並累加。不過由於階乘是從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);//輸出結果。
}