标签:输出 eva can lisp ant ++ 多少 task bsp
模板如下:
#include <stdio.h> int main() { int a[20001];//储存每一位所得到的数 int temp,digit,n,i,j=0;//temp每次的得数 digit每次得数的位数 scanf("%d",&n); a[0]=1;//从1开始乘 digit=1;//位数从第一位开始 for(i=2;i<=n;i++) { int num=0; for(j=0;j<digit;j++) { temp=a[j]*i+num;//将一个数的每一位数都分别乘以i, a[j]=temp%10;//将一个数的每一位数利用数组进行储存 num=temp/10; } while(num)//判断退出循环后,num的值是否为0 { a[digit]=num%10;//继续储存 num=num/10; digit++; } } for(i=digit-1;i>=0;i--)//倒序输出每一位 printf("%d",a[i]); printf("\n"); return 0; }
该模板不只是用于单纯的求阶乘,还适用于由阶乘衍生出来的一系列问题,如求某个数的阶乘输出中最右边那个不为0的数是多少(蓝桥杯:试题 算法训练 P0505)
此时只需要将模板稍微改动便可以轻松AC。
代码来源:
https://blog.csdn.net/lisp1995/article/details/52403507?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
标签:输出 eva can lisp ant ++ 多少 task bsp
原文地址:https://www.cnblogs.com/xwh-blogs/p/12495094.html