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 ...
随机推荐
- 15 3Sum(寻找三个数之和为指定数的集合Medium)
题目意思:给一个乱序数组,在里面寻找三个数之和为0的所有情况,这些情况不能重复,增序排列 思路:前面2sum,我用的是map,自然那道题map比双指针效率高,这道题需要先排序,再给三个指针,i.j.k ...
- Razor引擎的转换数据类型
AsInt() 把字符串转换为整数. if (myString.IsInt()) IsInt() {myInt=myString.AsInt();} AsFloat() 把字符串转换为浮点数. if ...
- listen函数
listen函数仅仅由TCP服务器调用,它做2件事: 1)当socket函数创建一个套接字时,它被假设为一个主动套接字,也就是说,它是一个将调用connect发起连接的客户套接字 listen函数把一 ...
- webpack资料
https://zhuanlan.zhihu.com/p/20367175?columnSlug=FrontendMagazine http://www.cnblogs.com/tugenhua070 ...
- some words that I always make mistake
发音相似容易混淆的词汇 alteration 英 [ɔːltə'reɪʃ(ə)n; 'ɒl-] 美 [,ɔltə'reʃən] n. 修改,改变:变更 alteration /ˌɔːltəˈre ...
- moveToThread的最简单用法(依葫芦画瓢即可)(使得线程也更偏向于信号槽的使用方法)
/*! * \file main.cpp * * Copyright (C) 2010, dbzhang800 * All rights reserved. * */ #include <QtC ...
- COJ 0017 20604悲剧文本
传送门:http://oj.cnuschool.org.cn/oj/home/problem.htm?problemID=17 20604悲剧文本 难度级别:B: 运行时间限制:1000ms: 运行空 ...
- 设计模式(五):PROTOTYPE原型模式 -- 创建型模式
1.定义 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象. 2.适用场景 原型模式的主要思想是基于现有的对象克隆一个新的对象出来,一般是有对象的内部提供克隆的方法,通过该方法返回一个对 ...
- POJ 1502 MPI Maelstrom( Spfa, Floyd, Dijkstra)
题目大意: 给你 1到n , n个计算机进行数据传输, 问从1为起点传输到所有点的最短时间是多少, 其实就是算 1 到所有点的时间中最长的那个点. 然后是数据 给你一个n 代表有n个点, 然后给你一 ...
- cf701B Cells Not Under Attack
Vasya has the square chessboard of size n × n and m rooks. Initially the chessboard is empty. Vasya ...