这里就到了我们高精度的实际应用了,大家可能会有疑惑,就是学完高精度,能看懂,代码会敲就是不知道该如何应用,那就好好的吸收这篇
阶乘肯定越乘越大了,所以肯定很快就会超出所能装的数据的最大限度
#include<stdio.h>
int main (void)
{
//输入你要乘的是几的阶乘
int n=0,j=0;
scanf("%d",&n);
//l是用来装输出的位数的
int l=1,i=0,k=0;
//装乘数的
int a[10000]={0};
a[1]=1;
//下面外面先来一个循环,起到每一次都乘以一个数,就是阶乘的作用
for(i=1;i<=n;i++)
{
for(j=1;j<=l;j++)
{
a[j]=a[j]*i;
//这里引用一个装结果的数组,可以看之前的,格式,思路一样
}
//这里要分开,不然会重复乘以最高位
for(j=1;j<=l;j++)
{
if(a[j]>9)
{
//核心代码与之前的一样的
a[j+1]+=a[j]/10;
a[j]=a[j]%10;
if(j==l)
{
l++;
}
}
}
}
//去除前面的零
while(a[l]==0&&l>1)
{
l--;
}
//输出结果
for(i=l;i>=1;i--)
{
printf("%d",a[i]);
}
return 0;
}
这就是高精度乘法的实际应用,
不需要死板的先输入字符型转换成整形
把核心代码合理的应用就可以完成特定的目标,这篇算是最简单的类型了,但我还是敲了很久,但愿熟能生巧吧!!!