题解 1148: C语言训练-计算1977!*

来看看其他人写的题解吧!要先自己动手做才会有提高哦! 
返回题目 | 我来写题解

筛选

优质题解

C语言训练-计算1977!,c语言的简单思路

###解题思路​因为这道题的位数已经超过的longlongint最大数,所以这道题的思路应该按存放在数组的思想去做这一道题,因为这个位数实在是太大了,我们只能用i(1~1977)去乘以上一个数值的每一个数,,如假设a现在是4!==24,则a[1]=2,

C语言训练-计算1977!*-题解(C语言代码)

解题思路:我把1977!分为很多个五位数,以数组承载这些五位数,随着循环,将每一个数组元素乘以i,当一个数组元素大于100000时,取它的十万位以下的数字为该元素,十万位及以上加至下一个数组元素。如a[0]=1304000,使a[0]=4000,a[1]=a[1]+13。

C语言训练-计算1977!*-题解(C语言代码)

#思路和第一名的那位大佬一样##代码中有解释解题思路:由于数字过于庞大,任何类型的变量都容纳不了,所有就需要用到数组;考虑到平时我们计算乘法时都是用乘数乘以每个数字,然后个位满10进一位,接着计算下一位;例如:18*8——8,64——8+6,4——1,4,4从这个例子可以看出,

C语言训练-计算1977!*-题解(C++代码)——大数运算

#思路模拟一下大数乘法即可,思路比较简单。关键在于确定开多么大的数组,假设有两千个两千相乘最多不可能超过4(2000有四位)*2000(两千个两千)=8000位,所以开10000的数组一定可以装下这个数。#代码#includeusingnamespacestd;intmain(){intnum[100