python-阶乘计算

DaLongggggg
• 阅读 1009

问题描述

  输入一个正整数n,输出n!的值。   其中n!=123n。

算法描述

  n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。   将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。   首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。

输入格式

  输入包含一个正整数n,n<=1000。

输出格式

  输出n!的准确值。

样例输入

10

样例输出

3628800 特别注意n的规模 首先用递归只能解决1到几百以内的阶乘

n = int(input())

a = b =1

while a <= n:
    b = b * a
    a += 1
print(b)

循环累乘

点赞
收藏
评论区
推荐文章
浅梦一笑 浅梦一笑
6天前
初学 Python 需要安装哪些软件?超级实用,小白必看!
编程这个东西是真的奇妙。对于懂得的人来说,会觉得这个工具是多么的好用、有趣,而对于小白来说,就如同大山一样。其实这个都可以理解,大家都是这样过来的。那么接下来就说一下python相关的东西吧,并说一下我对编程的理解。本人也是小白一名,如有不对的地方,还请各位大神指出01名词解释:如果在编程方面接触的比较少,那么对于软件这一块,有几个名词一定要了解,比如开发环
先知 先知
1年前
C 语言代码大全
1 两个数组的合并 题目描述 已知数组a中有m个按升序排列的元素,数组b中有n个按降序排列的元素,编程将a与b中的所有元素按降序存入数组c中。 输入 输入有两行,第一行首先是一个正整数m,然后是m个整数;第二行首先是一个正整数n,然后是n个整数,m, n均小于等于1000000。 输出 输出合并后的mn个整数,数据之间用空格隔开。输出占一行。 样例输入 4
blmius blmius
1年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录 问题 用navicat导入数据时,报错: 原因这是因为当前的MySQL不支持datetime为0的情况。 解决修改sql\mode: sql\mode:SQL Mode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。 全局s
DaLongggggg DaLongggggg
1年前
python刷题-最大最小公倍数
问题描述已知一个正整数N,问从1~N中任选出三个数,他们的最小公倍数最大可以为多少。 输入格式输入一个正整数N。 输出格式输出一个整数,表示你找到的最小公倍数。 样例输入9 样例输出504 数据规模与约定1 < N < 106。 N int(input())Min 1if N<2: print(N)elif N%2
DaLongggggg DaLongggggg
1年前
python-算法训练 区间k大数查询
问题描述给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个。 输入格式第一行包含一个数n,表示序列长度。第二行包含n个正整数,表示给定的序列。第三个包含一个正整数m,表示询问个数。接下来m行,每行三个数l,r,K,表示询问序列从左往右第l个数到第r个数中,从大往小第K大的数是哪个。序列元素从1开始标号。 输出格式总共输出m行,每行一个数
DaLongggggg DaLongggggg
1年前
python刷题-进制转换
十六进制转八进制问题描述  给定n个十六进制正整数,输出它们对应的八进制数。输入格式  输入的第一行为一个正整数n (1<n<10)。  接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。输出格式  输出n行,每行为输入对应的八进制正整数。  【注意】  输入的十六进制数不会有
Stella981 Stella981
11个月前
Python之time模块的时间戳、时间字符串格式化与转换
Python处理时间和时间戳的内置模块就有`time`,和`datetime`两个,本文先说`time`模块。 ### 关于时间戳的几个概念 * 时间戳,根据1970年1月1日00:00:00开始按秒计算的偏移量。 * 时间元组(`struct_time`),包含9个元素。  `time.struct_time(tm_y
Stella981 Stella981
11个月前
Seeker的奇妙求职历险(网易互联网笔试)
素数的个数 ===== 给出一个包含n个正整数的数组a,把a\[i\]拆分为若干个和为a\[i\]的素数,求拆分后最多能有多少个素数。 > 第一行数据为n,表示数组长度,第二行为n个元素。 > 输入 > 3 > 1 1 1 > 输出 > 0 1不可拆分 > 输入 > 1 3 5 7 > 6 1为0个,3为1个,5为(2,3
Stella981 Stella981
11个月前
Python3 学习手册每日更新
1、数学计算: n的m次方:n**m n除以m的整数值:n // m n除以m的浮点值:n / m Python还支持复数,复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型 tuple的元素不可改变,但它可以包含可变的对象,可变对象中
helloworld_34035044 helloworld_34035044
2个月前
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。 uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid() 或 uuid(sep)参数说明:sep 布尔值,生成的uuid中是否包含分隔符'',缺省为