C语言编程:求n的阶乘

如题所述

思路:所谓n的阶乘就是从1到n的累积,所以可以通过一个for循环,从1到n依次求积即可。
参考代码:
#include "stdio.h"
int main() {
int n,i,s=1;
scanf("%d",&n);
for(i=1;i<=n;i++)//for循环求累积
s=s*i;
printf("%d\n",s);
return 0;
}
/*
运行结果:(例如求5的阶乘)
5
120
*/追问

要求使用自定义函数……

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-12-22

只写函数的话可以这样——

int func(int n){
    if(n==1 || n==0)
        return 1;
    return n*func(n-1);
}

也可以这样——推荐这种,时效好。

int func(int n){
    int s;
    for(s=1;n>1;s*=n--);
    return s;
}

第2个回答  2010-04-05
#include<stdio.h>
main()
{
int a[2000]={0},i,n;
printf("input n=");
scanf("%d",&n);
a[1]=1;
for(i=2;i<=n;i++) // 这里的分号去掉
a[i]=a[i-1]*i;
printf("a[i]=%d",a[i-1]); // 这儿改成i-1
}
第3个回答  2016-05-30
#include<stdio.h>
int main()
{int n,f,i;
scanf("%d",&n);
for(f=i=1;i<=n;i++)
f*=i;
printf("%d!=%d\n",n,f);
return 0;
}追问

使用自定义函数~~

追答

提问题请“一步到位”啊!
#include
int fac(int n)
{if(n==0||n==1)return 1;
return n*fac(n-1);
}
int main()
{int n;
scanf("%d",&n);
printf("%d!=%d\n",n,fac(n));
return 0;
}

第4个回答  2014-03-22
#include <stdio.h>

int main()
{
int j;
printf("请输入一个整数:\n");

scanf("%d", &j);
if (j <= 0)
{
return 0;
}
int i = 1,n = 1;
for (i = 1; i <= j;++i)
{
n *= i;
}
printf("%d的阶乘等于:%d\n", j, n);

return 0;
}

c语言求n的阶乘程序
所谓n的阶乘就是从1到n的累积,所以可以通过一个for循环,从1到n依次求积即可。参考代码:include "stdio.h"int main() { int n,i,s=1。scanf("%d",&n)。for(i=1;i<=n;i++)\/\/for循环求累积。s=s*i。printf("%d\\n",s)。return 0。注意事项:1、任何大于1的自然数n阶乘表示方法...

求n的阶乘c语言
求n的阶乘c语言如下:第一步、编程的第一步就是写头文件,对于初学者来说,只写一个头文件就可以了,即#include<stdio.h>。第二步、就是定义我们的变量,我们需要定义一个n,用来求他的阶乘,sum用来保存结果,i用来循环。第三步、就是把sum初始化,为1.千万不要为0,保证后面的结果不出问题。...

如何使用c语言求n的阶乘?
1、首先定义一个函数,这个函数里的内容求n的阶乘,返回值是n的阶乘,如下图所示。2、函数定义完成之后,就要开始写main函数里的内容,还是定义变量。3、变量定义后就要赋值,把sum的值写为0.因为后面的求和就需要sum的初始值为0,如下图所示。4、下一步就是利用for循环了,for循环i初始值位1,结束...

C语言入门——求n的阶乘
1. 直接计算阶乘:n!=1×2×3×...×(n-1)×n 2. 利用递归:n!=n×(n-1)!,其中n大于等于1 特别地,0的阶乘定义为1。通过编程实现阶乘计算,对理解算法和编程逻辑有重要意义。在C语言中,求n的阶乘主要有两种方式:循环或递归。循环方式包括for循环和while循环,而递归则是函数调用自身实...

C语言编程:求n的阶乘
所谓n的阶乘就是从1到n的累积,所以可以通过一个for循环,从1到n依次求积即可。参考代码:include "stdio.h"int main() { int n,i,s=1;scanf("%d",&n);for(i=1;i<=n;i++)\/\/for循环求累积 s=s*i;printf("%d\\n",s);return 0;} \/ 运行结果:(例如求5的阶乘)5 120 \/ ...

c语言的求n的阶乘的程序代码。
输入一个正整数N,输出N的阶乘。输入:正整数N(0<=N<=1000)输出:输入可能包括多组数据,对于每一组输入数据,输出N的阶乘 样例输入:4 5 15 样例输出:24 120 1307674368000 AC代码 include <stdio.h> include <stdlib.h> include <string.h> define MAX 3000 \/\/存储每次阶乘运算的结果 int ...

阶乘c语言代码
c语言求n的阶乘程序1、所谓n的阶乘就是从1到n的累积,所以可以通过一个for循环,从1到n依次求积即可。参考代码:includestdio.hintmain(){intn,i,s=1。scanf(%d,&n)。for(i=1;i=n;i++)\/\/for循环求累积。s=s*i。2、`#includestdio.h`:引用标准输入输出头文件。`intmain()`:程序...

c语言如何求一个数的阶乘
n的阶乘就是从1到的累积,所以可以通过一个for循环,从1到n依次求积即可。参考代码:include "stdio.h"int main() { int n,i,s=1;scanf("%d",&n);for(i=1;i<=n;i++)\/\/for循环求累积 s=s*i;printf("%d\\n",s);return 0;} \/ 运行结果:(例如求5的阶乘)5 120 \/ ...

如何用C语言编写N的阶乘
include "stdio.h"main(){ int n,i;double p=1;\/\/这里用的是Double,不用Int,因为Int范围太小 printf("请输入一个数字:");scanf("%d",&n);for(i=2;i<=n;i++)p*=i;printf("n!shu=%lf\\n",p);}

编写用C语言实现的求n阶阶乘问题的递归算法
if(n==0)return 1;x=n-1;y=fact(x);return (n*y);} 拓展阅读:特点 递归算法是一种直接或者间接地调用自身算法的过程。在计算机编写程序中,递归算法对解决一大类问题是十分有效的,它往往使算法的描述简洁而且易于理解。递归算法解决问题的特点:(1) 递归就是在过程或函数里调用自身。(2) ...

相似回答