HDOJ HDU 1042 N!
来源:互联网 发布:excel密码破解软件 编辑:程序博客网 时间:2024/05/29 11:19
HDOJ 1042 N!
题目
点此查看 HDOJ 1042 N!
题意
求 N! (0 ≤ N ≤ 10000)
题解
典型大数问题
而且由于乘数不是大数
所以 模拟计算比较简单
用一个 int 表示 4为整数(要保证 相乘 小于 int(目前一般为32位)的最大值(2147483648)
将每一位对应相乘 加上上一次进位位 对 10000 取余 并记录下一次进位位 计算数 除以 10000
提示 10000! 大概要 36000位
直观感受 N! 增长
点击查看 1- 100 N! 表
代码
之前自己写的大数模板 总 WA
就贴这个拆分出来的吧
#include <stdio.h>#define maxnum 10000#define maxint 10000using namespace std;int main(){ int i,j,r,m,cur; while(scanf("%d",&r) != EOF) { if(r < 0) continue; int perint[maxnum] = {0}; perint[0] = 1; m = 0; for(i = 2;i <= r;i++) { for(int j = 0;j <= m;j++) { perint[j] *= i; if(j > 0 && perint[j-1] > maxint) { perint[j] += (perint[j-1] / maxint); perint[j-1] = perint[j-1] % maxint; } if(perint[m] >= 10000) m++; } } printf("%d",perint[m]); for(int i = m - 1;i >= 0;i--) printf("%04d",perint[i]); printf("\n"); } return 0;}
阅读全文
0 0
- HDOJ HDU 1042 N!
- HDOJ 1042 N!
- hdoj 1042 N!(高精度)
- HDOJ 1042 N!
- ACM HDOJ 1042 (N!)
- HDOJ 1042 N!
- hdoj 1042 N!
- N! hdoj 1042
- HDOJ 1042 N!
- hdoj 1042 N!
- hdoj 1042 N!
- hdoj-1042 N!
- HDOJ 1042 N!
- HDOJ 1042 N!
- hdoj-1042-N!
- HDOJ 1042 N!
- hdoj 1042 N!
- HDOJ 1042 N!
- Android EventLog
- doxygen生成PDF文档
- POJ 2299 Ultra-QuickSort (树状数组+离散化)
- 2017 Multi-University Training Contest
- Perl Win32::Gui 模块学习 (1)---- 主窗口的创建
- HDOJ HDU 1042 N!
- ASP.NET(C#) VS2010连接Oracle数据库
- Hibernate入门(4):集合映射&组件映射
- 一道题带你认识ACM竞赛
- APUE第七章学习笔记
- lintcode balanced binary tree 解题思路
- Java程序员的五个职业发展方向
- Linux 下使用 cgroup 控制进程的cpu,内存
- ASP.NET连接数据库的方法