HDU1042 N!
N!
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 82480 Accepted Submission(s): 24200
如果正常的的话,递归或者迭代
// 递归计算阶乘
int factorial_recursion(int n){if(n<=0){return 1;}else{return n * factorial_recursion(n-1);}
}
// 迭代计算阶乘
int factorial_iteration(int n){int result = 1;while(n>1){result *= n;n--;}return result;
}
不过int不超过14就GG了。
所以还是用数组去模拟,用数组模拟了竖式除法,再输出结果
/*************************************************************************> File Name: N的阶乘.c> Author: YinJianxiang> Mail: YinJianxiang123@gmail.com > Created Time: 2017年06月20日 星期二 21时54分10秒************************************************************************/#include<stdio.h>
#include<string.h>int main(void) {long long result[10000];int num;int i;int j;while(scanf("%d",&num) != EOF) {memset(result,0,sizeof(result));result[0] = 1;for(j = 1;j < num;j++) {for(i = 0;i < 9999;i++) {result[i] *= j;for(i = 0;i < 9999;i++) {if(result[i] >= 10000) {result[i+1] += result[i] / 10000;result[i] %= 10000;}}}}for(i = 9999;i >= 0;i--) {if(result[i]) {break;}}printf("%lld",result[i]);for(j = i - 1;j >= 0;j--) {printf("%05lld",result[i]);}printf("\n");}return 0;
}
HDU1042 N!相关推荐
- HDU1042 n!【大数+万进制】
N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Subm ...
- HDU1042(高精度模拟乘法)
方法一超时: #include<iostream> #include<algorithm> #include<cstring> #include<cmath& ...
- HDU-1042 N! 大数乘法 (C语言)
这是一道简单的数学题,求一个数(N)的阶乘.但是问题是题中N给的非常大(0<=N<=10000),用for循环来做显然不行了.这里用数组来对付这些大家伙.基本思路如下: 1.开辟一个够大的 ...
- hdu1042 java_N! hdu1042 | 学步园
N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- hdu1042 N!
N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submis ...
- hdu1042 java_hdu 1431 素数回文
素数回文 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) Total Submission ...
- 大数——大数阶乘(hdu1042)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1042 题目描述:题目异常的简洁,所以很容易入坑.其实想一想,10000!这个数确实蛮恐怖的~ 一.我 ...
- Anaconda简单入门
Anaconda入门 Anaconda简介 Anaconda是一个方便的python包管理和环境管理软件,一般用来配置不同的项目环境. 我们常常会遇到这样的情况,正在做的项目A和项目B分别基于pyth ...
- ACM的java 傻瓜式教学
关于eclipse的配置 我感觉我讲不清[逃 开始 从配好之后讲起 文件名命名为Main.java[接下来几行解释为什么要起这个名字 注意第七行那里(为了方便复制我没有加行号)的类的名字必须与文件名相 ...
最新文章
- codevs1137 计算系数
- win8更改计算机账户密码忘记了怎么办,密码忘记怎么办?WIN8平板电脑如何重置密码?...
- Linux环境下安装Mysql+SphinxSE
- 社交类产品设计的9个点,整不好会挨怼~
- 【ARM】ARM其它指令
- ES6_对象简洁语法_note
- c语言作业统计字符,C语言统计字符数(示例代码)
- 使用Dockerfile构建Nginx,Tomcat,MySQL镜像
- 各种版本的Visual C++编译器
- ABP框架源码学习之修改默认数据库表前缀或表名称
- libevent源码分析系列
- 决定转移ubuntu
- 建筑建模学习笔记3——Vray渲染及PS修图
- 目标建立——SMART法则
- 计算机应用程序错误怎么解决办法,应用错误,教您怎么解决explorer.exe应用程序错误...
- maven打包报错Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.6.1:cle
- 搞定 conda 安装包报错问题
- EMR 上的 Spark 或 Hive 作业失败并出现 HTTP 503 “Slow Down” AmazonS3Exception
- VS2019如何修改字体
- 开源ETL工具kettle系列