阶乘最右边的非0位

原创 2014年02月28日 13:50:47
/*描述
 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 6! = 720。因此,6的阶乘最右边的非零位为2。
 写一个程序,计算N(1<=N<=50,000,000)阶乘的最右边的非零位的值。注意:10,000,000!有2499999个零。
 输入
 仅一行包含一个正整数N。
 输出
 单独一行包含一个整数表示最右边的非零位的值。
 样例输入
 6
 样例输出
 2*/
import java.util.*;

public class Main4 {
	public static int n, tmp;

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		n = sc.nextInt();

		if (n == 0 || n == 1) {
			System.out.println(1);
			return;
		}
		tmp = 1;
		//
		for (int i = n; i > 0; i--) {
			// 去除右边的0
			if (i % 10 == 0) {
				i = i / 10;
				while (i % 10 == 0) {
					i = i / 10;
				}
			}
			// 取它的个位数
			tmp = tmp * (i % 10);
			// 如果相乘后是10的倍数,去除右边的0
			if (tmp % 10 == 0) {
				tmp = tmp / 10;
			}
			// 如果相乘后大于10,不是10的倍数,取各位数
			if (tmp > 10) {
				tmp = tmp % 10;
			}

		}
		System.out.println(tmp);
	}
}



                    

相关文章推荐

阶乘数最右边一个非零数字:通用解法

给出正整数n(可能有前导0),请求出n!最右非零的数位的值。
  • zxozxo4
  • zxozxo4
  • 2015年03月17日 13:50
  • 1000

阶乘最右边非0数

问题描述   一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点...

N!(N的阶乘)最末位非0的求解方法

关于N!的最后一位非0位, 如3!=6,最后一位非0位为6, 5!=120, 最后一位非0位为2.怎么样快速的求出最后一位非0位呢?...

求阶乘最后一位非0位

设f(n)表示n!的最后一位非0位 d(n)表示n!中不计算5的倍数时的结果,比如d(6)=1*2*3*4*1*6 m(n)表示d(n)最后一位,并且这一位一定不为0。 m(n)很特殊,因为他是循环的...

POJ 1150 The Last Non-zero Digit 阶乘最后非0位

转自:http://www.cppblog.com/abilitytao/archive/2009/10/31/99907.html 这个题怎么来做呢?先别急,我们先来讨论一下下面几个子问题: ...
  • Tsaid
  • Tsaid
  • 2012年02月16日 20:11
  • 1588

poj 1150 求n!中最后非0位

求n!最后有多少位0 #include int main() { int T,n,ans; scanf("%d",&T); while(T--) { int ans=0; scanf(...
  • sky_zdk
  • sky_zdk
  • 2017年04月08日 10:57
  • 131

bzoj 3552: 最右非零的数 && hduoj 1066: Last non-zero Digit in N!(求N!的最后一个非0位)

思路与公式: 1:n!的尾部的"0"都来自因子5和因子2(一对5和2产生一个0),如果把这些因子去掉,则可符合要求(2的个数明显 多于5的个数) 2:设F(n)为答案所要求的数,G(n)为1,2…n中...

计算阶乘最后20个非零数据

  • 2007年10月26日 09:23
  • 69KB
  • 下载

Factorial Power(阶乘最后非零位)

http://icpc.ahu.edu.cn/OJ/Problem.aspx?id=130 1.暴力代码:

阶乘末尾非0

最近的阶乘问题接触的比较多。 计算n!的末尾非0数是一个比较经典的问题。 那么对于小数据的该问题,还是比较容易的。 RQNOJ点击打开链接SWOJ点击打开链 小数据的方法都是可以过的。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:阶乘最右边的非0位
举报原因:
原因补充:

(最多只允许输入30个字)