首页 > 其他分享 >阶乘的和

阶乘的和

时间:2024-02-29 20:03:13浏览次数:15  
标签:scan int nums ++ result 阶乘

题目描述
给定 n 个数 Ai,问能满足 m! 为∑ni=1(Ai!) 的因数的最大的 m 是多少。其中 m! 表示 m 的阶乘,即 1 × 2 × 3 × · · · × m。

输入格式
输入的第一行包含一个整数 n 。

第二行包含 n 个整数,分别表示 Ai,相邻整数之间使用一个空格分隔。

输出格式
输出一行包含一个整数表示答案。

样例输入
3
2 2 2
样例输出
3

 1 import java.util.Scanner;
 2 // 1:无需package
 3 // 2: 类名必须Main, 不可修改
 4 
 5 public class Main {
 6     public static void main(String[] args) {
 7         Scanner scan = new Scanner(System.in);
 8         int n = scan.nextInt();
 9         //记录最小值
10         int result = Integer.MAX_VALUE;
11         int[] nums = new int[n];
12         //输入同时找出最小值
13         for (int i = 0; i < n; i++) {
14           nums[i] = scan.nextInt();
15           if (nums[i] < result) {
16             result = nums[i];
17           }
18         }  
19         //记录有几个result!
20         int k = 0;
21         while(true) {
22           //每次统计result!的个数
23           for (int j = 0; j < n; j++) {
24             if (nums[j] == result) {
25               k++;
26             }
27           }
28           //如果有并且是result+1的倍数,说明还能表示成(result+1)!
29           if (k != 0 && k % (result + 1) == 0) {
30              k = k / (result + 1);
31              //重新记录有多少个(result+1)!
32              result++;
33           } else {
34             break;
35           }                                
36         }
37         System.out.print(result);
38         scan.close();
39     }
40     
41 }

 

标签:scan,int,nums,++,result,阶乘
From: https://www.cnblogs.com/saucerdish/p/18045329

相关文章

  • 近似计算阶乘的对数
    问题起因阶乘\(n!\)的增长速度非常快。\(20!\)不能存储在典型的int变量中,\(200!\)就连双精度浮点变量也不能近似。处理阶乘的对数会是更方便的选择。那么,该如何在不计算阶乘结果的前提下,计算阶乘的对数?斯特林公式斯特林公式(Stirling'sapproximation)是一条用来取\(n!\)......
  • P5739 【深基7.例7】计算阶乘
    1.题目介绍【深基7.例7】计算阶乘题目描述求\(n!\),也就是\(1\times2\times3\dots\timesn\)。挑战:尝试不使用循环语句(for、while)完成这个任务。输入格式第一行输入一个正整数\(n\)。输出格式输出一个正整数,表示\(n!\)。样例#1样例输入#13样例输出#16提示......
  • 洛谷题单指南-模拟和高精度-P1591 阶乘数码
    原题链接:https://www.luogu.com.cn/problem/P1591题意解读:此题核心就是通过高精度*低精度计算阶乘,然后统计数码个数即可,直接给出代码。100分代码:#include<bits/stdc++.h>usingnamespacestd;vector<int>mul(vector<int>&a,intb){vector<int>result;intt......
  • 题解:阶乘
    题目大意给定一个数\(n\),求两个数\(a\),\(b\),使\(\Large\frac{a!}{b!}\normalsize=n(a>b)\)。若有无数组解输出-1。多组数据。思路简析\[a!=a\times(a-1)\times(a-2)\times\cdots\times2\times1\]\[b!=b\times(b-1)\times(b-2)\times\cdots\times2\times1\]......
  • 【算法 Java】递归,阶乘的递归实现,斐波那契数列的递归实现
    递归定义:方法直接或间接地调用方法本身思路:将大问题转化为一个与原问题相似的规模更小的问题注意:递归死循环会导致栈内存溢出一些使用递归求解的问题阶乘Factorial.javaimportjava.util.Scanner;publicclassFactorial{publicstaticvoidmain(String[]args)......
  • 用函数递归求阶乘
    #include<stdio.h>intfactorial(intx){  if(x<=1)    return1;  else  {    x=x*factorial(x-1);    return(x);  }  }intmain(){  intn,m;  printf("请输入n:");  scanf_s("%d",&n......
  • 实践4:求阶乘
    题目描述x的阶乘,即=x*(x-1)*(x-2)*···*2*1。输入一个整数m,计算并输出其阶乘的值。输入格式一个整数。输出格式一个整数。输入输出样例输入4输出24说明m=4,m!=4!=4*3*2*1=24。提示0的阶乘为1。答案:x=int(input())n=1ifx==0:......
  • C语言程序设计 求阶乘递归函数调用示例
    ......
  • python编程n阶乘
    在Python中,你可以使用递归或循环来计算n的阶乘。下面是两种不同的方法:使用递归计算n的阶乘:deffactorial_recursive(n):ifn==0orn==1:return1else:returnn*factorial_recursive(n-1)#示例用法n=5result=factorial_recursive......
  • 计算n!的阶乘
    #include<stdio.h>intmain(){  inti,n;  intsum=1;  scanf_s("%d",&n);  for(i=1;i<=n;i++)  {    sum=sum*i; }  printf("sum=%d\n",sum);  return0;}......