题目大意: 输入一个正整数n,输出n!的值。
                  其中n!=1*2*3*…*n

解题思路:   高精度加法及乘法,使用数组模拟存储计算结果。

//蓝桥杯试题 基础练习 阶乘计算
//高精度
//Writed by Maolin Xiao,2020 03 08
//妇女节快乐!!!
#include<bits/stdc++.h>
#define fori(i,a,b) for(int i = a;i < b;i++)
#define mod 1000000007
#define ll long long
#define pi acos(-1)
#define ford(i,a,b) for(int i = a;i >= b;i--)
#define fast_input() ios::sync_with_stdio(0)
#define INF 0x3f3f3f3f
#define maxn 10005
using namespace std;//使用倒叙存储数字,方便于加法的实现
typedef struct BigNumber{int len;int value[maxn];void init(){len = 0;memset(value,0,sizeof(value));}
}BigNumber;BigNumber Add(BigNumber a,BigNumber b){BigNumber ans;ans.init();int flag = 0;fori(i,0,max(a.len,b.len)){int q = a.value[i] + b.value[i] + flag;if(q >= 10) {flag = 1;q %= 10;}else{flag = 0;}ans.value[ans.len++] = q;}if(flag) ans.value[ans.len++] = flag;return ans;
}void Print(BigNumber it){ford(i,it.len - 1,0){printf("%d",it.value[i]);}cout<<endl;
}BigNumber mulity(BigNumber a,int t){BigNumber ans;ans.init();while(t){int k = t % 10;fori(i,0,k){ans = Add(ans,a);}t /= 10;a.len++;                   //a扩大十倍 ford(i,a.len - 1,1){a.value[i] = a.value[i - 1];}a.value[0] = 0;}return ans;
}int main(){int n;cin>>n;BigNumber a;a.init();a.len = 1;a.value[0] = 1; //a初始化为1 fori(i,2,n + 1){a = mulity(a,i);}Print(a);return 0;
}

如有问题,欢迎联系2339814485(qq).

蓝桥杯官网 试题 基础练习 阶乘计算(C++ 高精度)相关推荐

  1. 【蓝桥杯官网试题 - 基础练习】 矩形面积交 (几何)

    题干: 问题描述 平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴.对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积. 输入格式 输入仅包含两行,每行描述一个矩形. ...

  2. 蓝桥杯官网 试题 PREV-61 历届真题 装饰珠【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  3. 蓝桥杯官网 试题 PREV-240 历届真题 答疑【第十一届】【决赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  4. 蓝桥杯官网 试题 PREV-109 历届真题 扫地机器人【第十届】【省赛】【研究生组】【C++】【Java】【Python】三种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  5. 蓝桥杯官网 试题 PREV-265 历届真题 砝码称重【第十二届】【省赛】【研究生组】【C++】【C】【Java】【Python】四种解法

    为帮助大家能在6月18日的比赛中有一个更好的成绩,我会将蓝桥杯官网上的历届决赛题目的四类语言题解都发出来.希望能对大家的成绩有所帮助. 今年的最大目标就是能为[一亿技术人]创造更高的价值. 资源限制 ...

  6. 【蓝桥杯官网试题 - 真题训练】生命之树(树形dp)

    题干: 在X森林里,上帝创建了生命之树. 他给每棵树的每个节点(叶子也称为一个节点)上,都标了一个整数,代表这个点的和谐值. 上帝要在这棵树内选出一个非空节点集S,使得对于S中的任意两个点a,b,都存 ...

  7. 【蓝桥杯官网试题 - 历届试题】格子刷油漆(dp)

    题干: 问题描述 X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如下图所示),现需要把这些格子刷上保护漆. 你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但 ...

  8. 【蓝桥杯官网试题 - 历届试题】小朋友排队(逆序数,树状数组)

    题干: 问题描述 n 个小朋友站成一排.现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友. 每个小朋友都有一个不高兴的程度.开始的时候,所有小朋友的不高兴程度都是0. 如果某 ...

  9. 【蓝桥杯官网试题 - 历届试题】发现环(dfs+并查集,或无向图tarjan判环,无向环,或拓扑排序)

    题干: 问题描述 小明的实验室有N台电脑,编号1~N.原本这N台电脑之间有N-1条数据链接相连,恰好构成一个树形网络.在树形网络上,任意两台电脑之间有唯一的路径相连. 不过在最近一次维护网络时,管理员 ...

  10. 【蓝桥杯官网试题 - 算法训练 】K好数(线性dp与优化)

    题干: 问题描述 如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数.求L位K进制数中K好数的数目.例如K = 4,L = 2的时候,所有K好数为11.13.2 ...

最新文章

  1. window.onload和jquery中$(function(){ })的区别
  2. (转)upper_bound()与lower_bound()使用方法
  3. raft算法mysql主从复制_Raft算法赏析
  4. 表格过滤器_记录和管理零散信息,什么软件比 Excel 表格更方便
  5. Android常见命令
  6. Spring JDBC模板惯用方式
  7. IoT:MQTT协议详解
  8. Pytorch实现Transformer字符级机器翻译
  9. 3月编程排行榜来了~有哪些新看点?
  10. mysql求平方根_MySQL SQRT 函数
  11. C语言BMP图像的读取、存入、水平镜像、竖直镜像、马赛克模糊处理、灰度二值化处理
  12. PMP|项目经理如何做好相关方管理?
  13. IP技术 -- 3 路由器彩光
  14. 飞思卡尔MC9S12G64串口发送接收驱动
  15. Python基础教程(第三版)读书笔记(8)
  16. unity 刷新layout_【Unity源码学习】Layout
  17. 问题 G(1203): 【基础算法】0/1字符串问题
  18. Easier UVM Coding Guidelines / 便捷UVM 编码指南
  19. 酷讯网创始人陈华离职 或因与资方关系不合
  20. 机器学习_深度学习毕设题目汇总——皮肤_癌症_糖尿病

热门文章

  1. 电脑照片抠图软件哪个好?来看看这两个简单好用的工具
  2. 中国高校改名(总结篇)(转载)
  3. 时间表达式java定时器_java--定时器
  4. Redis内存数据库必读的4本书
  5. 我对“硬盘分区”的愚见
  6. 如何不下载百度网盘下载资源
  7. 从DWG导入SKP后的封面问题
  8. 高斯09linux教程,Gaussian 09的安装与使用
  9. 网页设计引入的字体包过大的压缩方法
  10. c语言的开方程序,详细解析C语言中的开方实现