ZZNUOJ-2154:单身狗线下聚会【求N个数的最小公倍数,会超longlong,大数乘法,Java】
2154: 单身狗线下聚会
题目描述 马上就到七夕节了,单身狗们决定聚一聚。但是它们沉迷B站上的lo娘,他们每沉迷 ai 单身狗时间(这是它们专业计时)后就会休息 单身狗时间。它们想找到一个时间正好他们都在休息,然后聚在一起单身。但是,每一只单身都因为缺爱,所以非常讨厌52这个数字(它们非常喜欢12),所以它们最多沉迷51个单身狗时间。
单身狗们发现每过一段相同的单身狗时间 S ,它们就一定会全部聚在一起。
单身狗们想把这个作为加入单身狗聚会的考核,算不出来时间的单身狗就得加入它们。当然,作为一个要在遥远的未来找到对象的有理想单身狗,怎么能加入这个咸鱼的单身狗群呢!现在请算一算这个时间,让这群单身狗看看你的与众不同。 输入 输入一个整数T开始,表示测试用例的数量。
每一行先输入一个整数n,(表示聚会中有 n 只单身狗)(<=n<=),下一行将输入由空格分隔的n个整数ai(<=ai<)。 输出 一个最小的单身狗时间 S 。 样例输入 样例输出
大致思路:
求N个数的最大公倍数,C的话大数模拟乘法就好,但记得先把公因数除去一次!
例如:2/4/8,2/6/8,2/8/10, 自行模拟求一下他们的最大公倍数,最后得出规律!!
关于超longlong的判断,该题正好最大的ai<=50时,不超过unsigned longlong, 其余的情况下都是会超数据范围的!或者自己输入51个不同的数字试试!
也可以hash一下处理,毕竟数字和数字重复后,仅算一个数字处理!
import java.math.*;
import java.util.*; public class Main { public static int Gcd(int a,int b){
return b!=0?Gcd(b,a%b):a;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner cin=new Scanner(System.in); int T=cin.nextInt(); while(T-->0){
int arr[]=new int[10008];
int n=cin.nextInt();
int x;
for(int i=1;i<=n;i++){
x=cin.nextInt();
arr[i]=x+1;
}
for(int i=1;i<=n;i++){ //双重循环除掉一次因子
for(int j=i+1;j<=n;j++){
int num = Gcd(arr[i],arr[j]);
arr[j]/=num;
}
} BigInteger sum=new BigInteger("1"); for(int i=1;i<=n;i++){
sum=sum.multiply(BigInteger.valueOf(arr[i]));
}
System.out.println(sum);
} } } /**************************************************************
Problem: 2154
User: 137666
Language: Java
Result: 正确
Time:180 ms
Memory:20652 kb
****************************************************************/
ZZNUOJ-2154:单身狗线下聚会【求N个数的最小公倍数,会超longlong,大数乘法,Java】的更多相关文章
- 合肥.NET技术社区首次线下聚会全程回顾【多图】
2019年3月16日对于合肥.NET来说是一个特别的日子,因为这是合肥.NET技术社区首次非正式线下聚会!这次聚会受场地限制(毕竟是聚餐的形式),即使换成了小椅子后,最多也只能容纳24个人,所以还有一 ...
- 听说,霸都.NET技术社区准备搞线下聚会了?
嗨,你听说了没有?霸都.NET技术社区准备搞线下聚会了! 啥时候的事情啊? 最近才知道的消息啊! 那你是从哪里知道的消息呢? .NET Core项目实战交流群(637326624)啊! 那这次合肥.N ...
- HDU_2028——求多个数的最小公倍数
Problem Description 求n个数的最小公倍数. Input 输入包含多个测试实例,每个测试实例的开始是一个正整数n,然后是n个正整数. Output 为每组测试数据输出它们的最 ...
- 求n个数的最小公倍数
解决的问题: 对于一个长度为n序列ai,求ai的最小公倍数 解析: 我们知道,如果求两个数a,b的LCM=a*b/gcd(a,b),多个数我们可以两两求LCM,再合并,这样会爆long long 所以 ...
- Oracle函数:求两个数的最小公倍数
CREATE or replace function GetGbs(num1 NUMBER,num2 NUMBER) RETURN NUMBER is resultnum NUMBER; maxnum ...
- 求前n项的斐波那契数列、求两个数的最小公倍数、求两个数的最大公约数
class Fib(object): def __call__(self,n): a=[0,1] for i in range(n-2): an ...
- 求N个数的最大公约数和最小公倍数(转)
除了分解质因数,还有另一种适用于求几个较小数的最大公约数.最小公倍数的方法 下面是数学证明及算法实现 令[a1,a2,..,an] 表示a1,a2,..,an的最小公倍数,(a1,a2,..,an)表 ...
- LightOj 1024 - Eid (求n个数的最小公约数+高精度)
题目链接:http://lightoj.com/volume_showproblem.php?problem=1024 题意:给你n(2<=n<=1000)个数, 然后求n个数的最小公倍数 ...
- Java求最大公约数和最小公倍数
最大公约数(Greatest Common Divisor(GCD)) 基本概念 最大公因数,也称最大公约数.最大公因子,指两个或多个整数共有约数中最大的一个.a,b的最大公约数记为(a,b),同样的 ...
随机推荐
- 【CUDA开发】论CUDA和LAV解码器是否真的实用
先说配置,我电脑E3V3+GTX780TI视频就一个普通的720P AVC1编码MP4视频,实时检测软件是CPU-Z和GPU-Z,AIDA64[全默认设置]全部用ptoplayer默认播放时候,播放3 ...
- layui监听radio点击事件
layui.form.on('radio(layui_dataType)', function(data){ console.log(data.elem); //得到radio原始DOM对象 cons ...
- javascript判断碰撞检测
javascript判断碰撞检测 点与矩形的碰撞检测 <pre> /** * * @param x1 点 * @param y1 点 * @param x2 矩形view x * @par ...
- 高阶函数 filter map reduce
const app=new Vue({ el:'#app', data:{ books:[{ id:1, name:"算法导论", data: '2006-1', price:39 ...
- hdoj2594(kmp算法next数组的应用)
题目链接:https://vjudge.net/problem/HDU-2594 题意:给定两个字符串s1.s2,求s1的前缀和s2的后缀的最长公共部分. 思路: 将s1和s2连接后求nex数组即可, ...
- 【转帖】一文看懂docker容器技术架构及其中的各个模块
一文看懂docker容器技术架构及其中的各个模块 原创 波波说运维 2019-09-29 00:01:00 https://www.toutiao.com/a6740234030798602763/ ...
- python笔记005-字符串-列表-元组
目录 1 上次作业补充拓展... 1 1.1 进制转换... 1 1.2 类型判断... 1 2 今日学习内容... 2 2.1 格式化输出... 2 2.2 基本运算符... 2 2.2.1 算术运 ...
- golang之map的使用声明
1.map的基本介绍 map是key-value数据结构,又称为字段或者关联数组.类似其它编程语言的集合,在编程中是经常使用到的 2.map的声明 1)基本语法 var map 变量名 map[key ...
- (1+x)^n
#include<stdio.h> int main() { int n,i; while(scanf("%d %d",&n,&i)!=EOF) { i ...
- Mac电脑配置相关及软件工具安装推荐
iTerm2(https://www.iterm2.com/) 终端工具 Alfred(http://xclient.info/s/alfred.html) 快速启动器 WebStorm.VSCode ...