【java_蓝桥杯算法训练 】试题 算法训练 阶乘

简介: 一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。幸运的是,在本题中,我们的任务不是去计算n!,而是去计算n!最右边的那个非0的数字是多少。例如,5! = 1*2*3*4*5 = 120,因此5!最右边的那个非0的数字是2。再如:7! = 5040,因此7!最右边的那个非0的数字是4。请编写一个程序,输入一个整数n(n<=100),然后输出n! 最右边的那个非0的数字是多少。  输入格式:输入只有一个整数n

 试题 算法训练 阶乘

资源限制

时间限制:1.0s   内存限制:512.0MB


问题描述

  一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。幸运的是,在本题中,我们的任务不是去计算n!,而是去计算n!最右边的那个非0的数字是多少。例如,5! = 1*2*3*4*5 = 120,因此5!最右边的那个非0的数字是2。再如:7! = 5040,因此7!最右边的那个非0的数字是4。请编写一个程序,输入一个整数n(n<=100),然后输出n! 最右边的那个非0的数字是多少。

  输入格式:输入只有一个整数n。

  输出格式:输出只有一个整数,即n! 最右边的那个非0的数字。


输入输出样例

样例输入

6

样例输出

2

分析:

题目的要求是计算计算阶乘的结果从右到左数不是0的数,直接输出就可以了,但是大家都应该知道阶乘值太大了,int、long根本就存储不下,这是我们就应该想到一个对象BigInteger来完成阶乘的计算,计算完毕后赋给一个字符串,通过for循环倒叙遍历然后找到第一个不为0的值并输出即可。会使用到BigInteger的multiply()方法对数值进行乘法。然后转换为String字符串,for遍历charAt()进行对字符串取出在if进行判断是否为0,是则break跳出循环。

看代码详细解释:

试题 算法训练 阶乘

资源限制

时间限制:1.0s   内存限制:512.0MB


问题描述

  一个整数n的阶乘可以写成n!,它表示从1到n这n个整数的乘积。阶乘的增长速度非常快,例如,13!就已经比较大了,已经无法存放在一个整型变量中;而35!就更大了,它已经无法存放在一个浮点型变量中。因此,当n比较大时,去计算n!是非常困难的。幸运的是,在本题中,我们的任务不是去计算n!,而是去计算n!最右边的那个非0的数字是多少。例如,5! = 1*2*3*4*5 = 120,因此5!最右边的那个非0的数字是2。再如:7! = 5040,因此7!最右边的那个非0的数字是4。请编写一个程序,输入一个整数n(n<=100),然后输出n! 最右边的那个非0的数字是多少。

  输入格式:输入只有一个整数n。

  输出格式:输出只有一个整数,即n! 最右边的那个非0的数字。


输入输出样例

样例输入

6


样例输出

2


分析:

题目的要求是计算计算阶乘的结果从右到左数不是0的数,直接输出就可以了,但是大家都应该知道阶乘值太大了,int、long根本就存储不下,这是我们就应该想到一个对象BigInteger来完成阶乘的计算,计算完毕后赋给一个字符串,通过for循环倒叙遍历然后找到第一个不为0的值并输出即可。会使用到BigInteger的multiply()方法对数值进行乘法。然后转换为String字符串,for遍历charAt()进行对字符串取出在if进行判断是否为0,是则break跳出循环。

看代码详细解释:

import java.util.Iterator;
import java.util.Scanner;
public class Main {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    Scanner sc=new Scanner(System.in);
    int n=sc.nextInt();
    char arr[][]=new char[2*n-1][2*n-1];
    //arr[n-1][n-1];为中心
    for (int i = 0; i < 2*n-1; i++) {
      for (int j = 0; j < 2*n-1; j++) {
        arr[i][j]='.';
      }
    }
    char c=(char) (64+n);
    arr[n-1][n-1]=c;
    //西北
    for (int i = n-2; i>-1; i--) {
      arr[i][i]=(char) (arr[i+1][i+1]-1);
    }
    //东南
    for (int i = n; i<2*n-1; i++) {
      arr[i][i]=(char) (arr[i-1][i-1]-1);
    }
    //东北
    int u=n;
    for (int i = n-2; i>=0; i--) { 
      arr[i][u]=(char) (arr[i+1][u-1]-1);
      u++;
    }
    //西南
    int k=n-2;
     for (int i = n;i<2*n-1; i++) {
     arr[i][k]=(char) (arr[i-1][k+1]-1);
     k--;
  }
     //正北
     for (int i = n-2; i >-1; i--) {
    arr[i][n-1]=(char) (arr[i+1][n-1]-1);
  }
     //正南
     for (int i = n; i<2*n-1; i++) {
    arr[i][n-1]=(char) (arr[i-1][n-1]-1);
  }
     //正东
     for (int i = n; i <2*n-1; i++) {
    arr[n-1][i]=(char) (arr[n-1][i-1]-1);
    }
     //正西
     for (int i = n-2; i>=0; i--) {
    arr[n-1][i]=(char) (arr[n-1][i+1]-1);
  }
     for (int i = 0; i < 2*n-1; i++) {
        for (int j = 0; j <2*n-1 ; j++) {
          if(arr[i][j]!=' ')
          System.out.print(arr[i][j]);
        }
        System.out.println();
      }
  }
  }

image.gif


目录
相关文章
|
数据采集 机器学习/深度学习 Java
Java 大视界 -- Java 大数据在智能体育赛事运动员体能监测与训练计划调整中的应用(200)
本篇文章聚焦 Java 大数据在智能体育赛事中对运动员体能监测与训练计划的智能化应用。通过构建实时数据采集与分析系统,结合机器学习模型,实现对运动员体能状态的精准评估与训练方案的动态优化,推动体育训练迈向科学化、个性化新高度。
|
算法 Java C++
【潜意识Java】蓝桥杯算法有关的动态规划求解背包问题
本文介绍了经典的0/1背包问题及其动态规划解法。
647 5
|
算法 搜索推荐 Java
【潜意识Java】深度解析黑马项目《苍穹外卖》与蓝桥杯算法的结合问题
本文探讨了如何将算法学习与实际项目相结合,以提升编程竞赛中的解题能力。通过《苍穹外卖》项目,介绍了订单配送路径规划(基于动态规划解决旅行商问题)和商品推荐系统(基于贪心算法)。这些实例不仅展示了算法在实际业务中的应用,还帮助读者更好地准备蓝桥杯等编程竞赛。结合具体代码实现和解析,文章详细说明了如何运用算法优化项目功能,提高解决问题的能力。
854 6
|
算法 定位技术
数据结构与算法学习九:学习递归。递归的经典实例:打印问题、阶乘问题、递归-迷宫问题、八皇后问题
本文详细介绍了递归的概念、重要规则、形式,并展示了递归在解决打印问题、阶乘问题、迷宫问题和八皇后问题等经典实例中的应用。
520 0
|
算法 前端开发 Java
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
这篇文章总结了单链表的常见面试题,并提供了详细的问题分析、思路分析以及Java代码实现,包括求单链表中有效节点的个数、查找单链表中的倒数第k个节点、单链表的反转以及从尾到头打印单链表等题目。
304 1
数据结构与算法学习四:单链表面试题,新浪、腾讯【有难度】、百度面试题
|
机器学习/深度学习 人工智能 分布式计算
Java中的机器学习模型集成与训练
Java中的机器学习模型集成与训练
|
机器学习/深度学习 分布式计算 算法
Java中的机器学习模型集成与训练实践
Java中的机器学习模型集成与训练实践
|
机器学习/深度学习 算法 Java
Java中的机器学习模型集成与训练策略
Java中的机器学习模型集成与训练策略
|
Java
2023届蓝桥杯大赛软件类国赛Java大学B组 互质 数论
2023届蓝桥杯大赛软件类国赛Java大学B组 互质 数论
304 1
|
存储 前端开发 算法
2016届蓝桥杯大赛软件类国赛Java大学B组 反幻方 暴力搜索
2016届蓝桥杯大赛软件类国赛Java大学B组 反幻方 暴力搜索
272 0

热门文章

最新文章