/*描述 也许你早就知道阶乘的含义,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); } }
阶乘最右边的非0位
最新推荐文章于 2021-05-24 06:35:46 发布