h1042 N!大数乘int
计算10000以内某个数的阶乘,即大数乘以int,考虑到一个int存一个数位过于繁琐且浪费空间,采用万进制
一个int存四个位数,但注意除了最高位,其他位不够四位数时要加上前导0凑够四位;
例123456*15,3456在一个int(a[1])中,12在a[2]中,a[1]=3456*15=51840,a[2]=12*15=180;
a[1]>9999所以进位:a[2]+=a[1]/10000=185,a[1]%=10000=1840;
所以ans:185 1840;
#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;180
int num[10005];
int main()
{
int n,i,j,k;
while (scanf("%d",&n)!=EOF){
memset(num,0,sizeof(num));
num[0]=num[1]=1;
for (i=2;i<=n;i++){
int len=num[0];
for (j=1;j<=len;j++) num[j]*=i;
for (j=1;j<=num[0];j++){
if (num[j]>9999) {num[j+1]+=num[j]/10000;num[j]%=10000;}
if (num[num[0]+1]) num[0]++;
}
}
for (i=num[0];i>=1;i--){
if(i!=num[0]){
if (num[i]>99&&num[i]<1000)
printf("0%d",num[i]);
else if (num[i]>9&&num[i]<100)
printf("00%d",num[i]);
else if(num[i]<9)
printf("000%d",num[i]);
else printf("%d",num[i]);
}
else printf("%d",num[i]);
}
printf("\n");
}
return 0;
}
h1042 N!大数乘int的更多相关文章
- 数组实现int随机数的阶乘(避免大数问题)
面试的一道题目,实现int随机数的阶乘.这道题就是考察你考没考虑大数问题,如何避免它. 我能想到的就是用数组去实现,然后写了一下代码.但是当i的值很大,接近Max_value时的情况还没有考虑到. 直 ...
- 【集训笔记】【大数模板】特殊的数 【Catalan数】【HDOJ1133【HDOJ1134【HDOJ1130
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3324 http://blog.csdn.net/xymscau/artic ...
- 大数加法(STL list)
#include<iostream> #include<list> #include<string> using namespace std; int main() ...
- HDU 1715 (大数相加,斐波拉契数列)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1715 大菲波数 Time Limit: 1000/1000 MS (Java/Others) ...
- HDU 1316 (斐波那契数列,大数相加,大数比较大小)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1316 Recall the definition of the Fibonacci numbers: ...
- CodeForces - 633D Fibonacci-ish 大数标记map+pair的使用
Fibonacci-ish Yash has recently learnt about the Fibonacci sequence and is very excited about it. He ...
- hdu 1715 大菲波数(大数)
题意:整数大数加法 思路:大数模板 #include<iostream> #include<stdio.h> #include<stdlib.h> #include ...
- hdu 1047 Integer Inquiry(大数)
题意:整数大数加法 思路:大数模板 #include<iostream> #include<stdio.h> #include<stdlib.h> #include ...
- java 大数详细讲解
介绍 java中用于操作大叔的类主要有俩种 第一个是BigInteger,代表大整数.第二个是BigDecimal,代表大浮点数.两种类的操作方法类似,所以我们只讲解BigInterger的用法 基本 ...
随机推荐
- SaltStack安装及配置
1.简介SaltStack是一个服务器基础架构集中化管理平台,具备配置管理.远程执行.监控等功能,一般可以理解为简化版的puppet和加强版的func.SaltStack基于Python语言实现,结合 ...
- php json_decode返回null
在使用json_decode函数想把json串转化为数组的时候,出现了null,当时还以为是因为json对字符串的长度有限制,还以为是因为两边少了引号,经过多次处理,发现都没有效果. 百度各种帖子,发 ...
- Tomcat分windows版和linux版
Tomcat分windows版和linux版 官方下载链接:http://archive.apache.org/dist/tomcat/tomcat-6/v6.0.37/bin/ windows下载e ...
- 20145101《Java程序设计》第8周学习总结
20145101<Java程序设计>第8周学习总结 教材学习内容总结 第十四章 NIO与NIO2 NIO使用频道(channel)来衔接数据节点,对数据区的标记提供了clear(),rew ...
- 20145303刘俊谦 Exp7 网络欺诈技术防范
20145303刘俊谦 Exp7 网络欺诈技术防范 1.实验后回答问题 (1)通常在什么场景下容易受到DNS spoof攻击 局域网内的攻击,arp入侵攻击和DNS欺骗攻击 公共wifi点上的攻击. ...
- Android实践项目汇报总结(上)修改
微博客户端的设计与实现(上) 第一章 绪论 1.1课题背景 微博可以说是时下最受人们所喜爱的一种社交方式,它是一种通过关注机制分享简短实时信息的广播式的社交网络平台.通过微博我们可以了解最新的时事新闻 ...
- 字符编码之间的相互转换 UTF8与GBK(转载)
转载自http://www.cnblogs.com/azraelly/archive/2012/06/21/2558360.html UTF8与GBK字符编码之间的相互转换 C++ UTF8编码转换 ...
- 六角填数|2014年蓝桥杯B组题解析第七题-fishers
六角填数 如图所示六角形中,填入1~12的数字. 使得每条直线上的数字之和都相同. 图中,已经替你填好了3个数字,请你计算星号位置所代表的数字是多少? 请通过浏览器提交答案,不要填写多余的内容. 思路 ...
- MIMO雷达比幅单脉冲测角精度分析(系统工程与电子技术)
MIMO雷达比幅单脉冲测角精度分析(系统工程与电子技术)
- kafka删除一个topic
前言 当我们在shell中执行topic删除命令的时候` kafka-topics --delete --topic xxxx --zookeeper xxx`,会显示,xxxx已经被标记为删除.然后 ...