SGU154——Factorial (poj1401变形题——数论+二分)
2013-12-03 18:33
399 查看
154. Factorial
time limit per test: 0.5 sec.memory limit per test: 4096 KB
input: standard input
output: standard output
You task is to find minimal natural number N, so that N! contains exactly Q zeroes on the trail in decimal notation. As you know N! = 1*2*...*N. For example, 5! = 120, 120 contains one zero on the trail.
Input
One number Q written in the input (0<=Q<=10^8).
Output
Write "No solution", if there is no such number N, and N otherwise.
Sample test(s)
Input
2
Output
10
题目描述:输入一个数n、求某个数的阶乘后面有n个0的数p;
会了poj1401就好办了、直接来个二分搜素。
#include<iostream> #include<string.h> #include<stdio.h> #include<ctype.h> #include<algorithm> #include<stack> #include<queue> #include<set> #include<math.h> #include<vector> #include<map> #include<deque> #include<list> #define N 0x7fffffff using namespace std; int num0(int n) { int count=0; while(n) { count+=n/5; n/=5; } return count; } void find(int w) { int left=0,right=N,mid; while(left<=right) { mid=(left+right)>>1;//位运算速度快 // mid=(left+right)/2; if(num0(mid)>=w) right=mid-1; else left=mid+1; } if(num0(left)==w) printf("%d\n",left); else puts("No solution"); } int main() { int n; while(scanf("%d",&n)!=EOF) { if(n==0) printf("1\n"); else { find(n); } } return 0; }
[submit]
[forum]
相关文章推荐
- poj 1401 变形课 数论+二分
- SGU 154 Factorial(数论+二分)
- SGU - 154 - Factorial (数论)
- POJ 1401 Factorial
- POJ 1401 Factorial
- poj-2773(数论+容斥原理+二分)
- poj 1142 Smith Numbers(数论:欧拉函数变形)
- POJ 1401:Factorial 求一个数阶乘的末尾0的个数
- poj 1401 Factorial(数学水题)
- POJ 1401 Factorial 阶乘0的数量 .
- ACM: 二分又二分 数论题 poj 3233
- POJ 1401:Factorial 求一个数阶乘的末尾0的个数
- sgu 154 二分 + 数学方法 sgu 111 二分 + 高精度 (Java)
- ACM: 矩阵变形题 数论题 poj 3150
- POJ 1401 Factorial
- SGU-154 Factorial (末尾0 & 三分)
- poj 1401 Factorial
- POJ1401 - Factorial
- POJ 1401 Factorial 解题报告
- POJ 1401 Factorial (对数学知识考…