HDU 1042 N!(高精度阶乘、大数乘法)
N!
Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others)
Total Submission(s): 100274 Accepted Submission(s): 30006
Problem Description
Input
Output
Sample Input
1 2 3
Sample Output
1 2 6
题目大意与分析
题目意思很简单,就是求阶乘,我们可以看到这是一个大数乘小数的问题,因为N是小于10000的,所以每次都是乘一个int可以存下的数,但是另一个乘数可能是一个大数,所以称之为大数乘小数。
那么如何计算呢:
用字符数组存大数,然后和大数加法很像,与竖式计算一样的原理,大数的每一位都要去乘这个小数,模10是当前位上的值,除以10是进位。
与大数加法略有不同的是,大数要倒着存,比如123 就要anss[1]=3,anss[2]=2,anss[3]=1,这是因为加法的进位只会进一位,乘法进位可能会进好几位,倒着存容易处理。
代码
#include<bits/stdc++.h>using namespace std; int anss[1000000],n,cnt,i,j,k,temp; int main() {while(scanf("%d",&n)!=EOF){memset(anss,0,sizeof(anss)); anss[1]=1;cnt=1; //记录当前结果长度 for(i=1;i<=n;i++){k=0; //记录进位 for(j=1;j<=cnt;j++){temp=(anss[j]*i+k)%10;k=(anss[j]*i+k)/10;anss[j]=temp;} while(k){anss[++cnt]=k%10;k=k/10;}}for(i=cnt;i>=1;i--)printf("%d",anss[i]);printf("\n");} }
转载于:https://www.cnblogs.com/dyhaohaoxuexi/p/11327425.html
HDU 1042 N!(高精度阶乘、大数乘法)相关推荐
- *【HDU - 1042 】 N! (大数乘法)
题干: Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N in one line, process ...
- 杭电1042—— N!(大数乘法的应用!)
N! Problem Description Given an integer N(0 ≤ N ≤ 10000), your task is to calculate N! Input One N i ...
- hdu 1042 N! 高精度运算
N! Time Limit: 10000/50 ...
- 牛客题霸 [ 大数乘法] C++题解/答案
牛客题霸 [ 大数乘法] C++题解/答案 题目描述 以字符串的形式读入两个数字,编写一个函数计算它们的乘积,以字符串形式返回. (字符串长度不大于10000,保证字符串仅由'0'~'9'这10种字符 ...
- 大数乘法(快速傅立叶变换)下
博客搬家:最爱午后红茶 大数乘法(快速傅立叶变换)上 上篇已经已经讲了多项式乘法由系数表示法转化为点值表示法(即求值)的FFT算法的过程:接下来讲插值算法,它需不需要用新的算法写一遍呢?并不用这么麻烦 ...
- 【算法】大数乘法问题及其高效算法
题目 编写两个任意位数的大数相乘的程序,给出计算结果.比如: 题目描述: 输出两个不超过100位的大整数的乘积. 输入: 输入两个大整数,如1234567 和 123 输出: 输出乘积,如:15185 ...
- (C语言)高精度阶乘
题目描述 启明星软件组组长听说我们会乘法之后,立马让我们帮他算一下阶乘(怎么有这么坏的组长). 此题也很简单只需要算一下不大于100的数n的阶乘就好了,看我多好数据一下子少了10倍哦! 输入 输入有多 ...
- C++求阶乘四种方法,阶乘和,高精度阶乘
目录 前言 一.阶乘和是什么? 二.题目 三.对错代码对比 1.错误代码 2.正确代码 四,拓展(以下均多组输入) 1,简单阶乘(int递归) 2,阶乘改进1(long long递归) 3,阶乘改进2 ...
- 大数乘法【极简思路、代码模板】
793. 高精度乘法 - AcWing题库 极简思路 大数乘法可能和前面我们提到的大数减法 和 大数加法 的分治 思路不太一样,对于大数乘法我们可以有更加简单的思路. 这里提到的大数乘法,是针对与 一 ...
- hdu A + B Problem II(大数相加,数组实现)
hdu A + B Problem II(大数相加,数组实现) 题目走起 注意最后一个case 不需要换行 下面代码 #include<stdio.h> #include<strin ...
最新文章
- 科学革命与科学教科书
- 精读《React PowerPlug 源码》
- php:Mcrypt响应慢的原因解决备注
- mac下为什么光标按方向键只能一个字一个字地蹦
- boost::serialization模块测试 auto_ptr 序列化的测试程序
- 你不会真的以为自己懂得计算机网络吧?
- python数据分析图表展示_1行代码实现Python数据分析:图表美观清晰,自带对比功能丨开源...
- [css] 说说你对相对定位、绝对定位、固定定位的理解
- 联想笔记本java环境变量_联想ThinkPad笔记本如何添加系统环境变量?
- 软件工程导论——第三章——需求分析
- 生意参谋高阶指数换算api、指数换算api、生意参谋交易指数换算api、生意参谋数据查询api
- Java IO流处理 面试题汇总
- 如何优雅的(不花钱)获取一本技术图书
- 基于stm32的100KV高压发生器 倍压电路
- python函数之enumerate()快速打印出列表中的元素以及对应的下标
- trivial/nontrival函数
- NetLogo学习笔记1 —— 初步认识
- Computer Vision的尴尬---by林达华
- mysql 竖列变成横行_mysql 横变竖 竖变横
- pyecharts的各个系列配置项设置示例——个人整理与分享
热门文章
- effective c++条款11扩展——关于拷贝构造函数和赋值运算符
- 全国计算机等级考试题库二级C操作题100套(第39套)
- 深度学习都是非凸问题_神经网络的损失函数为什么是非凸的?
- python自动获取cookie_selenium3+python自动化12-cookie相关操作(获取和删除)
- mysql函数lead用指定的字符串实现左填充指定长度
- vscode浏览器打开html
- 前端工具:推荐几款UI设计师好用的设计软件
- SQLServer常用的配置函数笔记
- 收集10个顶级的CSS3代码生成器
- Shell脚本中函数返回值的用法笔记