zoukankan      html  css  js  c++  java
  • Java实现 蓝桥杯 算法提高 计算超阶乘(暴力)

    试题 算法提高 计算超阶乘

    问题描述
      计算1*(1+k)(1+2k)(1+3k)(1+n*k-k)的末尾有多少个0,最后一位非0位是多少。
    输入格式
      输入的第一行包含两个整数n, k。
    输出格式
      输出两行,每行一个整数,分别表示末尾0的个数和最后一个非0位。
    样例输入
    15 2
    样例输出
    0
    5
    数据规模和约定
      1<=k<=10,1<=n<=1000000。
    PS:
    在计算的过程中就把末尾的0删掉

     
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            Scanner s = new Scanner(System.in);
            int n = s.nextInt();
            int k = s.nextInt();
            long sum = 1;
            int zeros = 0;
            for (int i = 1; i < n; i++) {
                sum = sum * (1 + i * k);
                while (sum % 10 == 0 && sum > 9) {
                    sum = sum / 10;
                    zeros++;
                }
                sum = sum % 100000;
            }
    
            System.out.println(zeros);
            System.out.println(sum % 10);
        }
    }
    
    
  • 相关阅读:
    oracle执行.sql文件
    rematch的基本用法
    dva的基本用法
    redux-saga基本用法
    react-redux的基本用法
    redux的基本概念
    mobx基本概念
    centos 编译安装Apache 2.4
    javascript动态添加一组input
    php配置文件语法
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13074670.html
Copyright © 2011-2022 走看看