杭电1042—— N!(大数乘法的应用!)
N!
这道题目有一些东西特别要注意:
1.0的阶乘是存在的!0!=1,我当初提交这道题目是在这一点上吃了不少的亏!我开始是是写的while(cin>>n && n>0);交上去的时候老是报错!但是我就纳闷了,没错啊!后来才发现,这句应该写成while(cin>>n && n>=0);或者while(scanf("%d",&n)!=EOF);
2.10000的阶乘是在是太大了!我的数组开4000居然还是错,开8000还错!后来索性开个10000,居然对了!太吃惊!
//首先需要肯定,程序是正确的
//这算是大数乘除法!记住他们是如何处理的!由于数据很大,用基本数据类型根本无法满足要求,只能用数组来表示!
//大数乘法!10000!的阶乘是在太大!几次数组开小了都报错误!
#include <iostream>
#include<cstdio>
#include<memory.h>
using namespace std;
#define MAX 10000
#define BASE 100000//base只是一个基度,对最终取值并没有影响,相反,base取值愈大,计算量愈小
//base发生改变的时候,下面的输出也要相应地做出调整,否则也会输出错误答案!除非当base取10!
int h[MAX];
//这是我第二次接触大数的乘法!现在复习一下吧!很好的算法!int main()
{int i,j,k,carry;int n;while(scanf("%d",&n)!=EOF){ memset(h,0,MAX*sizeof(int));//赋值,每一个都置为0 for(i=1,h[MAX-1]=1;i<=n;++i)//运用递归,并且h[1]=1; for(k=MAX-1,carry=0;k>=0;--k)//从最后一位开始相乘,依次向前与每一位相乘 { carry+=i*h[k];h[k]=carry%BASE;carry/=BASE;//carry表示进位} for(j=0;j<MAX && h[j]==0;++j);//从0位开始搜索,找到不为0的第一个数 printf("%d",h[j++]);//像是这个输出,就很妙了,第一位可能不足五位,就地输出!for(;j<MAX;++j)printf("%05d",h[j]);//处在中间的值也可能没有五位,这时候要注意了,往左边加0,凑足5位,不然答案会出错! printf("\n");}//system("pause");return 0;
}
杭电1042—— N!(大数乘法的应用!)相关推荐
- 杭电oj java printf_杭电oj1042题大数,java,百思不得其解为何WA,求指教
我看了标准答案,他们是这样的:importjava.math.BigDecimal;importjava.math.BigInteger;importjava.util.Scanner;publicc ...
- 杭电--N!(大数)
N! Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Subm ...
- 杭电acm第2304题答案c语言,【转】杭电ACM试题分类
注:网上搜的 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 1005 找规律(循环点) 1006 感觉有点BT的题,我到现在还没过 ...
- 杭电oj HDOJ 1018 Big Number(斯特林公式求大数阶乘的位数)
杭电oj HDOJ 1018 Big Number 题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=1018 Problem Description In ...
- hdoj杭电问题分类
杭电上的题虽然多,但是一直苦于找不到问题分类,网页都是英文的,所以平时做题也没怎么看,今天仔细一看,问题分类竟然就在主页....做了那么久的题居然没发现,表示已经狗带..不要笑,不知道有没有像我一样傻 ...
- 杭电ACM(HDUOJ)试题分类
杭电ACM试题分类 第一篇 1001 这个就不用说了吧 1002 简单的大数 1003 DP经典问题,最 ...
- 杭电ACM题目类型整理
版权声明:(╯3╰) 转载请注明: http://blog.csdn.net/bat67 杭电acm题目分类版本1 1002 简单的大数 1003 DP经典问题,最大连续子段和 1004 简单题 10 ...
- 【ACM】杭电OJ 1002
题目链接:杭电OJ 1002 表面上看是a+b,很简单,其实是大数的相加,所以要考虑的因素有很多:(瞬间觉得要是能用Python多好,哈哈哈) 还有!!! 要特别注意格式的输出!!!真的害死人!!!摸 ...
- 杭电1108java_按照这个步骤来刷题,迷茫的你两个月亦能成为王者
原标题:按照这个步骤来刷题,迷茫的你两个月亦能成为王者 作者 | bigsai 来源 | bigsai(ID:bigsai) 前言 大家好,我是bigsai哥哥.最近很多小伙伴问我怎么入门数据结构与算 ...
最新文章
- PHP Webservice的发布与调用
- python链接安卓 跳一跳
- SpringBoot2.1+SpringCloud:注册中心搭建(Eureka)
- Spark运行原理剖析
- Oracle SQL Loader数据导入
- Dubbo源码分析系列-Dubbo的动态编译原理
- socket android用法,Android NDK中socket的用法以及注意事项分析
- jQuery 1.11 / 2.1 beta 版发布
- axios与ajax对比,vue体系中axios请求对比jquery-ajax请求
- UITextfield键盘相关设置
- 使用Xcode Instruments Leak解决内存泄漏问题
- 插件基础篇3:jquery 插件开发备注
- python 模拟触屏_python一次简单游戏辅助的经历(截取屏幕模拟键盘)
- Spring的IOC和AOP,学不会Spring的,你看我的文章
- c#实现任务栏气泡提醒
- 如何读到一个文件的最后更新日期和时间
- SpringBoot+LayUI+MybatisPlus+Echarts图表 前后端分离 实现数据统计功能
- 【LeetCode】解题309:Best Time to Buy and Sell Stock with Cooldown(动态规划)
- String.format()详解与遇到的问题(UnknownFormatConversionException)
- Web自动化_APP自动化_接口自动化_测试框架汇总
热门文章
- 致远项目管理SPM系统案例:完达山乳业费控管理系统
- 学习【全栈之巅】Node.js + Vue.js 全栈开发王者荣耀手机端官网和管理后台笔记(2.8-2.9)
- GPU Direct p2p、 Nvlink 、GPU DirectRDMA
- Docker安装nacos
- 计算机网络原理【三】之 传输层
- 记事本写的html文件保存到c:\inetpub\wwwroot失败
- cmd如何打开某一盘符下的文件
- php7 win 升级,(win10)Wamp环境下php升级至PHP7.2
- scp免密登录,同时也适应ssh免密登录
- 六千字带你快速上手操作MySQL