数论:HDU1066-Last non-zero Digit in N!】的更多相关文章

POJ 1150 The Last Non-zero Digit 数论+容斥 题目地址: id=1150" rel="nofollow" style="color:rgb(0,136,204);text-decoration:none;">POJ 1150 题意:  求排列P(n, m)后面第一个非0的数. 分析: 为了熟悉题目中的理论.我先做了俩0基础的题目: id=1401" rel="nofollow" style…
找规律! 求N!最后非0位的值.比方2是120的最后一个不是0的值. 输入N比較大,要大数保存. 注意到最后0的个数是与5的因数的个数相等.设f(n)为n!的最后非0位. 那么f(n)=((n%5)!* f(n/5) *2^(n/5))%10 因数2的个数始终大于5,从1開始每连续5个划分为1组,当中5的倍数仅仅提取出一个因数5后, 组成一个新的数列1到n/5,我们有1*2*3*4*5=6*7*8*9*5=2(取最后一个非0位),这里就是2^(n/5). 再乘上剩下来的几个数字就可以 (比方n是…
传送门 数论好题啊. 首先对于b<=sqrt(n)b<=sqrt(n)b<=sqrt(n)的情况直接枚举b判断一下就行了. 下面谈一谈如何解决b>sqrt(n)b>sqrt(n)b>sqrt(n)的情况. 如果b>sqrt(n)b>sqrt(n)b>sqrt(n) 显然有: nnn modmodmod bbb +++ n/b=sn/b=sn/b=s nnn modmodmod bbb +++ b∗(n/b)=sb*(n/b)=sb∗(n/b)=s 这里…
The expression N!, read as "N factorial," denotes the product of the first N positive integers, where N is nonnegative. So, for example, 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…
Given a positive integer N, you should output the leftmost digit of N^N.  InputThe input contains several test cases. The first line of the input is a single integer T which is the number of test cases. T test cases follow. Each test case contains a…
题目: Last non-zero Digit in N! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 7929    Accepted Submission(s): 2037 Problem Description The expression N!, read as "N factorial," denotes the…
UVA 10162 - Last Digit 题目链接 题意:求S=(11+22+...NN)%10 思路:打出0-9的每一个周期,发现周期为1或2或4.所以S是以20一个周期,打出表后发现20为4.所以相应的40为8.60为2,80为6.100为0,100为1个周期,且为0,所以先把数字mod上100,然后在mod 20求出相应位置. 代码: #include <stdio.h> #include <string.h> const int Z2[10] = {0, 4, 8, 2…
http://acm.hdu.edu.cn/showproblem.php?pid=1066 转自:https://blog.csdn.net/fengyu0556/article/details/5615129 hdu1066改进的思路和对于大数的处理:(转) 为了把0去掉,我们把所有的因数2和5都提出来,放到最后再处理.N!中的N个相乘的数可以分成两堆:奇数和偶数.偶数相乘可以写成(2^M)*(M!),M=N DIV 2.M!可以递归处理,因此现在只需讨论奇数相乘.考虑1*3*5*7*9*1…
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1060   这道题运用的是数学方法. 假设S=n^n.两边同时取对数,得到lgS=nlgn.即有S=10^(nlgn). 把nlgn看做一个整体,假设它是由整数加上介于0到1之间的小数相加得到的. 那么整数部分就不考虑了,就单纯的放大倍数而已.取决于小数部分. 小数部分=nlgn-(__int64)nlgn.注意是__int64.因为小数部分在0到1之间,所以10得次方得到的数必定大于等于1且小于10…
Crack Mathmen Time Limit: 1000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述  Since mathmen take security very seriously, they communicate in encrypted messages. They cipher their texts in this way: for every characther c in the message, they replace c w…