当前位置:首页 » 编程软件 » 编程阶乘问题

编程阶乘问题

发布时间: 2023-05-12 01:04:04

编程阶乘问题

说实话,没有计算阶乘的公式,也没有简便方法,只是硬算,也可以运用计算机,可以计算到65!,如果你想计算跟大的数,我建议你上网络寻找计算阶乘的软件,听说多大的数都能计算出来。

还有这个参考:

由于阶乘运没清算的增长速度特别快(比2^n的增长速度快),对于较小整数的阶乘运算采用简单的递规算法可以实现,但是对于大整数的乘法(比如1000!),则传统的递规算法就失去了作用。

由于本人的水平不高,用下列拙劣的方式实现,请高人多多指教。具体如下:定义一个很长的数组,用数组的每一项表示计算结果的每一位。例如,7!=5040,a[1000],则a[0]=0,a[1]=4,a[2]=0,a[3]=5。

程序源代码:

/**
*计算大数的阶乘,算法的主要思想就是将计算结果的每一位用数组的一位来表示:如要计算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< a.length; 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;
}
}
public static void main(String[] args)
{
String num = args[0];

int count = 0;
int n = Integer.parseInt(num);
f(n);
for(int i= a[0]; i>笑塌0; i--)
{

count++;
System.out.print(/*"a[" + i + "]=" + */a[i]/* + " "*/);
}
System.out.println("\n"+count);
}
}

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=528778

参考资料:http://blog.csdn.net/hengshan/archive/2005/11/13/528778.aspx

c语言编程 输入N 求N的阶乘

输入一个正整数n,输出n!*/#include <stdio.h> //编译预处理命令

int factorial(int n); //函数声明

int main(int argc, char const *argv[]) //主函数

{

int n; //变量定义

scanf("%d", &n); //输入一个整数

printf("%d ", factorial(n)); //调用函数计算阶乘

return 0;
}int factorial(int n) //定义计算n!的函数

{

int fact = 1;

for (int i = 1; i <= n; ++i)

{

fact = fact*i;

}

return fact;

}

拓展资料

特点

1. C语言是高级语言。它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。

2.C语言是结构式语言。结构式语言的显着特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。这种结构化方式可使程序层次清晰,便于使用、维护以及调试。C 语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。

3.C语言功能齐全。具有各种各样的数据类型,并引入了指针概念,可使程序效率更高。而且计算功能、逻辑判断功能也比较强大。

4. C语言适用范围大。适合于多种操作系统,如Windows、DOS、UNIX、LINUX等等;也适用于多种机型。C语言对编写需要硬件进行操作的场合,明显优于其它高级语言,有一些大型应用软件也是用C语言编写的。

⑶ 用c语言编程,求从1的阶乘一直加到20的阶乘。

1、首先打开C语言编辑器,新建一个c语言的文件,导入头文件并设置一个主函数:

⑷ C语言中如何编程计算阶乘

常见的有两种:

递归版本:

intFac(intn){
if(n==0)return1;
returnn*Fac(n-1);
}

还有一种是循环版:

intans=1;
for(inti=1;i<=n;i++)ans*=i;

测试方法:

#include<stdio.h>

intFac(intn){
if(n==0)return1;
returnn*Fac(n-1);
}

intmain(){
intn;
while(scanf("%d",&n)!=EOF){
intans=1;
for(inti=1;i<=n;i++)ans*=i;
printf("%d%d ",ans,Fac(n));
}
return0;
}

有个值得注意的地方:阶乘时,数增大的很快,在n达到13时就会超过int的范围,此时可以用long long或是 __int64来存储更高精度的值,如果还想存储更高位的,需要用数组来模拟大数相乘。

⑸ c++求编程n的阶乘

首先,是main,不是mail。

其次,本程序中是使用的是递归函数来实现n的阶乘,因为在具体的计算判携源机上实现的时候,递归是由栈(一种数据的组织形式)来实现的,而栈的大小是受限于计隐侍算机的可用空间的。所以,在计算n的阶乘时,当n较大,在计算时可能会出现空间不足不能进行计算的情况,这种情况下,会返回result的值为0.提醒程序的使用者,本次计算结果不对,请检查程序或者输入数据。

最后,如果上面掘态这段看不懂也没有关系,你可以输入一个足够大的数来测试一下,当result初值是否为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;
}
/*
运行结果:(例如求5的阶乘)
5
120
*/

⑺ C语言编程 N的阶乘

#include<stdio.h>

int main()

{

int n,i,f=1;

printf("请输入一个整数:");

scanf("%d",&n);

for(i=2;i<=n;i++)

f*=i;

printf("%d!=%d ",n,f);

getch();

return 0;

}

⑻ 编程求阶乘的问题

在这段代码中,外层循环的目的是依次枚举从1到5一共5个数字,存入变量j;内层循环的作用是求j的阶乘,结果保存为变量a,然后把a累加到变量n。
求阶乘需要从1开始,沿自然数列依次向上乘,结果累乘到变量a,所以每次内层循环开始时变量a必须被重置成1,否则求下一个数字的阶乘时就不是从1开始计算了。
希望LZ能明白。

⑼ c语言如何求N的阶乘

法/步骤

第一步、编程的第一步就是写头文件,对于初学者来说,只写一个头文件就可以了,即#include<stdio.h>

拓展资料

定义

n!=1×2×3...xn

n!=X×(X-1)×(X-2)...×1

1751年,欧拉以大写字母M表示m阶乘M=1x2x3...x...m

1799年,鲁非尼在他出版的方程论着述中,则以小写字母π表示m阶乘。而在1813年,高斯则以Π(n)来表示n阶乘。而用来表示n阶乘的方法起源于英国,但仍未能确定始创人是谁。直至1827年,由于雅莱特的建议而得到流行,现在有时也会以这个符号作为阶乘符号。

当n较大时,直接计算n!变得不可能,这时可通过斯特灵(Stirling)公式计算近似算或取得大小范围。

热点内容
树莓派自带ftp开启 发布:2025-07-07 21:11:41 浏览:50
智慧树用脚本会怎么样 发布:2025-07-07 21:05:48 浏览:515
随机启动脚本 发布:2025-07-05 16:10:30 浏览:535
微博数据库设计 发布:2025-07-05 15:30:55 浏览:32
linux485 发布:2025-07-05 14:38:28 浏览:310
php用的软件 发布:2025-07-05 14:06:22 浏览:760
没有权限访问计算机 发布:2025-07-05 13:29:11 浏览:437
javaweb开发教程视频教程 发布:2025-07-05 13:24:41 浏览:736
康师傅控流脚本破解 发布:2025-07-05 13:17:27 浏览:249
java的开发流程 发布:2025-07-05 12:45:11 浏览:696