ZZNUOJ-2154:单身狗线下聚会【求N个数的最小公倍数,会超longlong,大数乘法,Java】

2154: 单身狗线下聚会

题目描述

马上就到七夕节了,单身狗们决定聚一聚。但是它们沉迷B站上的lo娘,他们每沉迷 ai 单身狗时间(这是它们专业计时)后就会休息 1 单身狗时间。它们想找到一个时间正好他们都在休息,然后聚在一起单身。但是,每一只单身都因为缺爱,所以非常讨厌52这个数字(它们非常喜欢12),所以它们最多沉迷51个单身狗时间。
单身狗们发现每过一段相同的单身狗时间 S ,它们就一定会全部聚在一起。
单身狗们想把这个作为加入单身狗聚会的考核,算不出来时间的单身狗就得加入它们。当然,作为一个要在遥远的未来找到对象的有理想单身狗,怎么能加入这个咸鱼的单身狗群呢!现在请算一算这个时间,让这群单身狗看看你的与众不同。

输入

输入一个整数T开始,表示测试用例的数量。
每一行先输入一个整数n,(表示聚会中有 n 只单身狗)(1<=n<=10000),下一行将输入由空格分隔的n个整数ai(1<=ai<52)。

输出

一个最小的单身狗时间 S 。

样例输入

2
2
1 2
4
1 2 5 7 

样例输出

6
24

大致思路:

  求N个数的最大公倍数,C的话大数模拟乘法就好,但记得先把公因数除去一次!

  例如:2/4/8,2/6/8,2/8/10, 自行模拟求一下他们的最大公倍数,最后得出规律!!

  关于超longlong的判断,该题正好最大的ai<=50时,不超过unsigned longlong, 其余的情况下都是会超数据范围的!或者自己输入51个不同的数字试试!

  也可以hash一下处理,毕竟数字和数字重复后,仅算一个数字处理!

 1 import java.math.*;
 2 import java.util.*;
 3  
 4 public class Main {
 5      
 6     public static int Gcd(int a,int b){
 7         return b!=0?Gcd(b,a%b):a;
 8     }
 9     public static void main(String[] args) {
10         // TODO Auto-generated method stub
11         Scanner cin=new Scanner(System.in);
12          
13         int T=cin.nextInt();
14          
15         while(T-->0){
16             int arr[]=new int[10008];
17             int n=cin.nextInt();
18             int x;
19             for(int i=1;i<=n;i++){
20                 x=cin.nextInt();
21                 arr[i]=x+1;
22             }
23             for(int i=1;i<=n;i++){    //双重循环除掉一次因子
24                 for(int j=i+1;j<=n;j++){
25                     int num = Gcd(arr[i],arr[j]);
26                     arr[j]/=num;
27                 }
28             }
29              
30             BigInteger sum=new BigInteger("1");
31              
32             for(int i=1;i<=n;i++){           
33                     sum=sum.multiply(BigInteger.valueOf(arr[i]));
34             }
35             System.out.println(sum);
36         }
37          
38     }
39  
40 }
41  
42 /**************************************************************
43     Problem: 2154
44     User: 137666
45     Language: Java
46     Result: 正确
47     Time:180 ms
48     Memory:20652 kb
49 ****************************************************************/
原文地址:https://www.cnblogs.com/zhazhaacmer/p/9479525.html