蓝桥杯 练习系统 基础练习 阶乘计算(C++)
2020-03-06 14:39
579 查看
总结
- 把常规计算放到切分成代码上方便实现的步骤
- 外层循环和内层循环不能少
- 二十分钟后觉得自己还没有头绪的,或者头绪很难实现的,直接去网上参考别人的算法,算法思维也是通过多见识见识,拿到自己手里把玩把玩再培养出来的
核心算法 - 自己一直在想整个数组长度究竟应该是多长,动态分配还是如何
- 数组的进位如何实现,进一位简单,进三位,四位,甚至是 是十位往上的又该如何进位
- 其实以上的想法有必要,但是真正的解决方案往往就蕴藏在 emmmmm(或许是从简单的第一步开始的,毕竟这个题目就是一步一步的加到数组里的)
for (int i = 1; i <= n; ++i) { for (int k = 0; k < Max; ++k) { m = temp[k] * i + r; temp[k] = m % 10; r = m / 10; } }
- 网上一直找一个整型数组的实际元素元素长度,打算来控制输出,但是一直没有好的解决方案
- 这个算法简单解决了大型 整型数组输出的问题
for (j = Max - 1; j >= 0; j--) { if (temp[j]) break; } for (int k = j; k >= 0; k--) { cout << temp[k]; }
代码
#include<iostream> #define Max 5000 using namespace std; int main() { int temp[Max] = {0}, n, r = 0, m, j; cin >> n; temp[0] = 1; for (int i = 1; i <= n; ++i) { for (int k = 0; k < Max; ++k) { m = temp[k] * i + r; temp[k] = m % 10; r = m / 10; } } for (j = Max - 1; j >= 0; j--) { if (temp[j]) break; } for (int k = j; k >= 0; k--) { cout << temp[k]; }return 0; }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 蓝桥杯比赛C++学习-----基础练习 阶乘计算
- C++蓝桥杯 基础练习之阶乘计算
- “蓝桥杯”练习系统 VIP试题 基础练习 阶乘计算
- 蓝桥杯:基础练习 Huffuman树、FJ的字符串、阶乘计算、高精度加法
- 蓝桥杯 - 基础练习 阶乘计算 -整数数组 耗时低~可以通过
- 蓝桥杯基础练习 阶乘计算(简单模拟)
- 蓝桥杯 基础练习 阶乘计算
- 蓝桥杯练习系统VIP试题-算法提高-阶乘计算
- 蓝桥杯练习系统试题集(二)--基础练习(含C/C++答案)
- 蓝桥杯(Java方法、详细解法分析)基础练习 阶乘计算
- 蓝桥杯练习系统--阶乘计算
- 蓝桥杯 基础练习 阶乘计算
- 蓝桥杯 BASIC-30 基础练习 阶乘计算
- 蓝桥杯 基础练习 阶乘计算
- 【蓝桥杯】【基础练习14】【阶乘计算】
- 蓝桥杯练习系统--阶乘计算
- 蓝桥杯基础练习 阶乘计算(高精度方法)
- 蓝桥杯 基础练习 阶乘计算 java
- 蓝桥杯 基础练习 阶乘计算
- 蓝桥杯 BASIC-30 基础练习 阶乘计算