用C语言求N的阶层。程序怎么写

用C语言求N的阶层。程序怎么写,第1张

1、使宏郑穗用递归算法

#include <stdio.h> 

#include <process.h> 

long factorial(int n)

{

long result

if (n<0)

{

printf("n<0,请输入大于等于0的整数!")

return -1

}

else if (n == 0 || n == 1)

{

result = 1

}

else

{

result = n*factorial(n 蔽卜- 1)

}

return result

}

main()

{

int n = 10.0

long iNum

iNum = factorial(n)

printf("10!=%ld\n", iNum)

system("pause")

}

2、使用循环

#include<stdio.h>

#include<process.h>

int main()

{

int  i = 1  //累加变量

long j = 1  //储存结果

int  k = 1  //输入的数值

printf("请输入一个数字:")

scanf("%d", &k)

do

{

j = j*i

i++

} while (i <= k)

printf("%ld\n", j)

system("pause")

return 1

}

以上两种方式是求阶乘的普通算法,求得的结果表示范围都是有限的,如丛高果算大数的阶乘还要另外的算法。

程序如下:

#include "stdio.h"

int main(void)

{

int i

int acc=1//用于存放阶乘

printf ("请输入一悉纳个整数i=")

scanf ("%d",&i)

for(i>0i--)

{

acc*=i

}

printf("该数的阶乘为隐拿acc=%d\n",acc)

return 0

}

运用for循环来求阶乘。

运睁携没行结果:

如求十的阶乘

10! = 3628800

如果用int明显越界。。。枝乎

usigned int 范围洞困是0~65535 明显也不够

需要使用long

下面是程序

#include<猛颤悉stdio.h>

#include<conio.h>

int main()

{

long result = 1

int i

for (i = 1i <= 10i++)

{

result *= i

printf("%ld\n", result)

}

getch()

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12330247.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存