c语言如何求一个数的阶乘

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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

*/

扩展资料: 

return用法:

return返回一个数值的意思就是把return<表达式>后面表达式的值返回给调用他的函数。举个例子:

int sum(int i,int j)


return i+j;

printf("这个语句不会被执行,因为该子函数执行到上面的return语句就无条件结束了");


main()


int a=10,b=11,c;

c=sum(a,b);

printf("%d",c);

参考技术A 求位数的话把这个数取10的对数就行了。至于求阶乘的话,如果n不是很大可以直接来算,当n比较大的时候可以用斯特林公式来求 参考技术B 求阶乘的代码你在网上应该可以搜索得到,至于求一个数的阶乘的位数,可以用如下代码实现
#include"stdio.h"
#include"math.h"
void main()

int i,n,sum;
scanf("%d",&sum); //sum为一个数的阶乘
for(i=1;;i++)

n=pow(10,i);
if(sum<n)

printf("%d的位数是%d\n",sum,i);
break;


参考技术C #include <stdio.h>

int main()

    long number = 10;  //number是几就计算几的阶乘;
    long sumber = 1;
    for(long i = 1; i <= number; ++i)
        sumber *= i;
    printf("%ld\\n",sumber); 
    return 0;

追问

最好要自定义函数

追答/*你也太懒了*/
#include <stdio.h>

long factorial(long n);
 
int main()

    long number = 10;  //number是几就计算几的阶乘;
    long sum = factorial(number);  //调用函数;
    printf("%ld\\n",sum); 
    return 0;


long factorial(long n)  //你要的自定义函数;

    long sum = 1;
    for(long i = 1; i <= n; ++i)
        sum *= i;
    return sum;

参考技术D 望采纳
#include<stdio.h>
int fun(int num)

    int s;
    if(num==1)
    
        return 1;
    
    s=num*fun(num-1);
    return s;

int main()

    int s;
    int num;
    while(1)
    
        printf("input a number:");
        scanf("%d",&num);
        getchar();
        s=fun(num);
        printf("%d\\n",s);
     

求一个数的阶乘

//求一个数的阶乘
int getDigit(int num)
{
int i;
long result=1;

if(num<0)
{
lr_output_message("你输入的是负数,没有阶乘");
}
else
{
for(i=1;i<=num;i++)
{
result *=i;
}
//lr_output_message("%d阶乘=%llu",num,factorial);
}

return result;
}

Action()
{
int number=2;
long result;

result=getDigit(number);

lr_output_message("%d的阶乘=%d",number,result);

return 0;
}

 

以上是关于c语言如何求一个数的阶乘的主要内容,如果未能解决你的问题,请参考以下文章

C语言中如何判断一个数的位数?

c语言,求一个数的逆的模n运算等于多少!

用c语言怎样编写n个数以内的完全数的程序

C语言求n个数的阶乘和,使用for语句循环,一定要用套嵌for语句吗?不用套嵌的单层for可以吗,

C语言求一个数的绝对值

「C语言」「算法」多种方法求一个数的位数及逆序数