N!水题
//题目是求N!的问题,思路:设定一个整形数组来存放每次计算过后的值
有两个for循环,第一个for循环每次加进一个数
然后在第二个for循环里面计算出此时的阶乘,比如9999,先给出i=2
在第二个for循环里面计算出2的阶乘,保存在数组里,然后i=3,在计算3的阶乘,后面以此类推。。。
#include<stdio.h>
#include <iostream>
#include<string.h>
#include<stdlib.h>
#define N 8000 //只需这么多就足够了!!!
using namespace std;
int s[N];
int main()
{
int i,j,k,t,n;
while(scanf("%d",&n)!=EOF)
{
memset(s,0,sizeof(s)); //每次使用前要清零
s[0]=1;
for(i=2;i<=n;++i) //计算n!
{ for(t=0,j=0;j<N;++j)//N也不算大,不用再改进了,要改进的话就是去计算n!的位数,计算方法如上
{
k=s[j]*i+t; //看到K了吗,这就是我们上面我们为什么只是10^5的原因,因为k就算是无符号型最大为 2^32-1,刚刚超过10^9,而s[j]<10^5,i<10^4,t<10^4,加一块最大值小于2^31-1,假如让s元素一个存6位的话,s[j]<10^6,i<10^4,t<10^4,就可能超过2^32-1了!所以s数组元素最多存5位!!
s[j]=k%100000;
t=k/100000;
//cout<<k<<" "<<s[j]<<" "<<t<<endl;
}
cout<<s[0]<<" "<<s[1]<<endl;//自己测试的,如果是9的话,刚好s[0]满5位了,然后数的最高位存放到s[1]里面。。。
}
for(i=N-1;!s[i];i--); //除去前导零
printf("%d",s[i]);//第一个元素不要求输出多余零
while(i)
printf("%05d",s[--i]);//这些需要输出前面多余的零,这个你懂的,否则一直WA!!
putchar('\n');
}
system("pause");
return 0;
}
N!水题的更多相关文章
- HDOJ 2317. Nasty Hacks 模拟水题
		Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ... 
- ACM :漫漫上学路 -DP -水题
		CSU 1772 漫漫上学路 Time Limit: 1000MS Memory Limit: 131072KB 64bit IO Format: %lld & %llu Submit ... 
- ytu 1050:写一个函数,使给定的一个二维数组(3×3)转置,即行列互换(水题)
		1050: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 154 Solved: 112[ ... 
- [poj2247] Humble Numbers (DP水题)
		DP 水题 Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The se ... 
- gdutcode 1195: 相信我这是水题 GDUT中有个风云人物pigofzhou,是冰点奇迹队的主代码手,
		1195: 相信我这是水题 Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 821 Solved: 219 Description GDUT中有个风云人 ... 
- BZOJ 1303 CQOI2009 中位数图 水题
		1303: [CQOI2009]中位数图 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 2340 Solved: 1464[Submit][Statu ... 
- 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛 B - 大还是小? 字符串水题
		B - 大还是小? Time Limit:5000MS Memory Limit:65535KB 64bit IO Format: Description 输入两个实数,判断第一个数大 ... 
- ACM水题
		ACM小白...非常费劲儿的学习中,我觉得目前我能做出来的都可以划分在水题的范围中...不断做,不断总结,随时更新 POJ: 1004 Financial Management 求平均值 杭电OJ: ... 
- CF451C Predict Outcome of the Game 水题
		Codeforces Round #258 (Div. 2) Predict Outcome of the Game C. Predict Outcome of the Game time limit ... 
- CF451B Sort the Array 水题
		Codeforces Round #258 (Div. 2) Sort the Array B. Sort the Array time limit per test 1 second memory ... 
随机推荐
- centos账户管理命令(root权限)
			cat /etc/passwd | grep -v /sbin/nologin | cut -d : -f 1 查看所有用户 userdel -r 用户名 -删除用户 ... 
- 破解Inode客户端使用笔记本共享WIFI
			由于住在学校的公寓里面,所以使用的是校园网,但是校园网限制了无线的使用,强制所有网络用户使用INode网络客户端,这个客户端不但很丑很难看,而且每天联网十分费劲,费了半天的力气终于联上网了,可是一眨眼 ... 
- 好用的JQ图片特效jquery-poptrox-popup-galleries
			jQuery Poptrox – Popup galleries Rate this (1 Vote) Download Demo jQuery Poptrox Adds popup ga ... 
- My97DatePicker 与 某个CSS冲突 ,导致无法显示
			调试 Metronic3.7 模版 ,boostrap的时间插件不怎么好用,改用My97DatePicker, 发现某个与plugins.css中某个插件冲突,经排查发现 css 中有这一段 ifr ... 
- 001Spark文件分析测试
			使用spark-1.4.1-bin-hadoop2.6进行处理,测试文件大小为3G, 测试结果: 1:统计一个文件中某个字符的个数 scala> sc.textFile("/home/ ... 
- 电源VCC、VSS、VDD、VEE、VPP、Vddf标号的区别
			一.解释VCC:C=circuit表示电路的意思,即接入电路的电压: VDD:D=device表示器件的意思,即器件内部的工作电压:VEE:发射极电源电压,EmitterVoltage,一般用于ECL ... 
- android 程序中res/values-v14/styles.xml报错的解决办法
			从旧的ADT迁移的新的ADT时, android 程序中res/values-v14/styles.xml报错: error: Error retrieving parent for item: No ... 
- Java ClassLoader基础及加载不同依赖 Jar 中的公共类(转)
			http://www.iteye.com/topic/1135259 http://www.trinea.cn/android/java-loader-common-class/ http://www ... 
- Java---IO加强(3)-IO流的操作规律
			一般写关于操作文件的读取的几个通用步骤!!! 1.明确源和目的. 源:InputStream Reader 一定是被读取的. 目的:OutputStream Writer 一定是被写入的. 2.处理的 ... 
- C#.net实现密码加密算法
			//SHA-1算法string password = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFil ... 
