输入一个正整数n,输出n!/#include <stdioh> //编译预处理命令
int factorial(int n); //函数声明
int main(int argc, char const argv[]) //主函数
{
int n; //变量定义
scanf("%d", &n); //输入一个整数
printf("%d\n", factorial(n)); //调用函数计算阶乘
return 0;
}int factorial(int n) //定义计算n!的函数
{
int fact = 1;
for (int i = 1; i <= n; ++i)
{
fact = facti;
}
return fact;
}
特点
1. C语言是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行 *** 作,而这三者是计算机最基本的工作单元。
2.C语言是结构式语言。结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大。
4. C语言适用范围大。适合于多种 *** 作系统,如Windows、DOS、UNIX、LINUX等等;也适用于多种机型。C语言对编写需要硬件进行 *** 作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。
程序源代码:
/
计算大数的阶乘,算法的主要思想就是将计算结果的每一位用数组的一位来表示:如要计算5!,那么首先将
(1)
a[0]=1,然后a[0]=a[0]2,a[0]=2,
(2)
a[0]=a[0]3,a[0]=6
(3)
a[0]=a[0]4,a[0]=24,此时a[1]=2,a[0]=4
/
public
class
Factorial
{
static
int
a[]
=
new
int
[10000];
static
void
factorial(int
n)
{
for(int
i=2;
i<
alength;
i++)
a[i]
=
0;
//将数组元素初始化
a[0]
=
1;
//用数组的一项存放计算结果的位数
a[1]
=
1;
//将第一项赋值为一
for(int
j=
2;
j
<=
n;
j++)
{
int
i=1;
int
c
=
0;
//c表示向高位的进位
for(;
i
<=
a[0];
i++)
{
a[i]
=
a[i]
j
+
c;//将来自低位的计算结果和本位的结果相加
c
=
a[i]
/
10;
a[i]
=
a[i]
%
10;
}
for(;
c
!=
0;
i++)
{
a[i]
=
c%10;
c
=
c
/
10;
}
a[0]
=
i
-
1;
#include<stdioh>
void main()
{
int i=1,j=0,k=10;//i是每次的自然数自增1,j是每次相乘后的结果统计,k是你想要输入的数字
printf("请输入一个数字");
scanf("%d",&k);
do
{
j=ji;
i++;
}while(i<=k);
printf("%d\n",j);
}
利用阶乘的定义求解阶乘
#include<stdioh>
void main()
{
int i,n;
long f=1;
scanf("%d",&n);
for(i=1;i<=n;i++)
f=fi;
printf("%d!=%ld",n,f);
}
递归方法求阶乘
#include "stdioh"
long fact(int n)
{
long s;
if(n<=1)
s=1;
else
s=nfact(n-1);
return s;
}
void main()
{
int num;
scanf("%d",&num);
printf("%d!=%ld\n",num,fact(num));
}
import javautilScanner;
public class A{
//下面的方法是对单个数求阶乘,并返回
public static int jieCheng(int n){
int sum=1;
for(int i=1;i<=n;i++){
sum=i;
}
return sum;
}
//下面是对所有数求阶乘,再全部相加,并返回
public static int add(int n){
int sum=0;
for(int i=1;i<=n;i++){
sum+=jieCheng(i); //调用上面的方法,对单个求阶乘,再全部相加
}
return sum;
}
public static void main(String[] args){
Scanner input=new Scanner(Systemin);
Systemoutprintln("请输入数字:");
int n=inputnextInt();
Systemoutprintln("运算得到:"+add(n));
}
}
//总结:此题有个特点,n等于要相加的数字的总数,也等于要求阶乘的最大数
def little_than_50(x):
if x <= 50:
return True
else:
return False
def calculate_factorial(x):
if x <= 1:
return 1
else:
return xcalculate_factorial(x-1)
while True:
n = int(input("Input a number for calculating factorial:"))
if little_than_50(n):
break
else:
print("{} is out of range,please input again!"format(n))
print("The factorial of {} is {}"format(n, calculate_factorial(n)))
以上就是关于C语言编程 输入N 求N的阶乘全部的内容,包括:C语言编程 输入N 求N的阶乘、2、编写一个求阶乘的方法,然后调用它利用公式、求助:C语言中用do while循环编写计算阶乘的程序~等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)