hdu1066(经典题)
求N个数阶乘末尾除0后的数值。
主要的难点在于要把这个N个数所含的2和5的队数去掉。
网上方法很多很好。 不多说
Last non-zero Digit in N!
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 5454 Accepted Submission(s): 1348
N N!
0 1
1 1
2 2
3 6
4 24
5 120
10 3628800
For this problem, you are to write a program that can compute the last non-zero digit of the factorial for N. For example, if your program is asked to compute the last nonzero digit of 5!, your program should produce "2" because 5! = 120, and 2 is the last nonzero digit of 120.
#pragma comment(linker, "/STACK:102400000,102400000") #include <stdio.h> #include <stdlib.h> #include <string.h> #include <algorithm> #include <math.h> #include <map> #include <queue> #include <sstream> #include <iostream> using namespace std; #define INF 0x3fffffffint n; int save[10]={1,1,2,6,4,2,2,4,2,8}; char s[1100]; int d[1100]; int i,ti; int tmp1; int cnt;int dfs(int len) {int tmp=1;for(i=len;i>=0;i--)if(d[i]!=0) break;if(i<0){return 1;}if(i==0){return save[d[0]];}if(d[1]%2==0) tmp=6;else tmp=4;tmp = ( tmp*save[d[0]] )%10;ti=i;for(;i>=0;i--){tmp1=d[i]%5;d[i]/=5;if(i!=0)d[i-1]+=tmp1*10; //将余数向下推 }return (tmp*dfs(ti))%10; }int main() {//freopen("C:\\Users\\Administrator\\Desktop\\in.txt","r",stdin);//freopen("C:\\Users\\Administrator\\Desktop\\in.txt","w",stdout);while(~scanf("%s",s)){//主要是将所有数2和5因子提取出来就可以了,剩下来的取最后一个数即可//然后就是最后一位怎么看了,int len=strlen(s);memset(d,0,sizeof(d));cnt=0;for(int i=0;i<len;i++)d[len-1-i]=s[i]-'0';printf("%d\n",dfs(len-1));}return 0; }
2015.11.20.。。
又走到这步。 今天看数论的是看不小心瞄到了这题,心想多年前都能做出来,现在怎么没什么想法了。
然后推了半天,自己想出一个解法。
我们可以发现,每乘5个数(1-5,或6-10),相当于乘2.(然后再往5^2 ,5^3...推)
然后就很好做了,把n装化为5进制,然后一下就可以出结果了。
留个代码纪念下。
#include <iostream> #include <stdio.h> #include <string.h> #include <algorithm> #include <stdlib.h> using namespace std;char str[10100]; int num[10100]; int ans[10100];int chg(char c) {return c-'0'; }int main() {while( scanf("%s",str) != EOF ){int len=strlen(str);for(int i=0;i<len;i++)num[i] = chg( str[i] );int cnt=0;for(int i=0;i<len;i++)if(num[i]==0) cnt++;else break;int wei=0;int from=10,to=5;while( cnt < len ){//然后做一次除法for(int i=cnt;i<len;i++){num[ i+1 ] += (num[i]%to)*from;num[ i ] /= to;}ans[ wei++ ] = num[len]/from;num[len]=0;for(int i=cnt;i<len;i++){if(num[i]==0) cnt++;else break;}}/*for(int i=wei-1;i>=0;i--){printf("%d",ans[i]);}printf("\n");*/int tmp = 1;int sum = 1;for(int i=0;i<wei;i++){int some=ans[i+1]%2==0?0:5;for(int j=1+some;j<=ans[i]+some;j++){sum = (sum*j*tmp);sum = sum%10;}tmp = tmp*2;tmp = tmp%10;}printf("%d\n",sum);}return 0; }
转载于:https://www.cnblogs.com/chenhuan001/p/3359048.html
hdu1066(经典题)相关推荐
- 【数据库原理及应用】经典题库附答案(14章全)——第十四章:分布式数据库系统
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第十三章:面向对象程数据库系统
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第十二章:数据库技术新发展
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第十章:数据库完整性
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第九章:数据库安全性
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第八章:数据库并发控制
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第七章:数据库恢复技术
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第六章:关系数据库设计过程
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
- 【数据库原理及应用】经典题库附答案(14章全)——第五章:关系数据理论
[数据库原理及应用]经典题库附答案(14章全)--第一章:数据库基础知识 [数据库原理及应用]经典题库附答案(14章全)--第二章:关系数据库知识 [数据库原理及应用]经典题库附答案(14章全)--第 ...
最新文章
- uniapp设置模板路径页面样式混乱解决办法
- C# 版本设计模式(Design Pattern)---------------总序
- java设计模式--简单工厂设计模式SimpleFactoryPattern
- ajax 原理----初级篇
- React with Webpack -1: 介绍Helloworld
- mysql第三方工具binlog_mysql 开发进阶篇系列 33 工具篇(mysqlbinlog日志管理工具)
- [Linux C]重启设备(系统)
- python切片表达式3个参数_Python:Base3(函数,切片,迭代,列表生成式)
- 自动语音识别的原理是什么,它的作用是什么
- java 开发环境 列表_Java 开发环境配置
- html5 职工入职后台管理系统_【开源】Net平台的后台管理系统
- lsi计算文档相似度
- 计算机网络与信息安全公务员,计算机网络技术专业考公务员有些职位?
- 通过注册表永久禁用系统UAC功能
- 计算机怎么配置IP地址,如何设置电脑IP地址?
- html动画 箭头线条,html – 悬停时动画的箭头线
- 什么是搜索引擎优化及其重要性
- 笔记本内置网卡发射wifi
- 个人网页制作(教你制作简单网页)
- Java中synchronization和Lock对比
热门文章
- Android RecyclerView 列表加载图片宽高适配
- Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告
- [lct] Luogu P4219 大融合
- XV6陷入,中断和驱动程序
- jquery animate自定义动画
- 6个很棒的PostCSS插件,让您成为一个CSS向导
- 【Vue】实例对象的生命周期(方法详解)
- Tips--tensorboard在win系统中jupyter notebook上打开方式
- Linux驱动(6)--关于uboot
- 7-10 找最小的字符串 (15 分)