当前位置: 首页 > news >正文

2025年- H101-Lc209--1979.找出数组的最大公约数(gcd最大公约数)--Java版

(一)练习

1.题目描述

在这里插入图片描述

2.思路

欧几里得算法
gcd(int a,int b)
{
while(b!=0)//当分母不为0
{
//求余数要先写。
int tmp=a%b;(余数)
a=b;(a移动到b的位置上)
b=tmp;(b就是求出来的余数)
}
return a;//最后返回a
}

举一个例子
12和5的最大公约数是1
(1)tmp=12%5=2;
a=5,b=2
(2)因为b!=0,
tmp=5%2=1;
a=2
b=1
(3)因为b!=0,
tmp=2%1=0
a=1;
b=0;退出循环
此时公约数就是a=1

3.代码实现

import java.util.Arrays;public class solution4 {public int findGCD(int[] nums) {Arrays.sort(nums);//升序排序int min=nums[0];int max=nums[nums.length-1];int res=gcd(min,max);return res;}public static int gcd(int a,int b){while(b!=0){int tmp=a%b;a=b;b=tmp;}return a;}public static void main(String[] args){solution4 test=new solution4();int[] nums={2,5,6,9,10};System.out.println(test.findGCD(nums));}
}

(二)实战(M)
有理数p/q在k进制是否是有限小数。
1/2=0.5是有限小数,1/2=0.3333…不是有限小数。
输入:第一行是整数t,代表测试数据的组数
接下来t行,输入三个整数,p(分子),q是(分母),k(进制基数)。
如果p/q在k进制数有限小数,输出“yes”,否则输出“no”
Input:
3
1 2 10
1 3 10
3 4 2
output:
yes
no
yes

思路:判断是否是有限小数
p=1,q=3,k=10
//求p和q的最大公约数
long res=gcd(p,q);//res=gcd=1;
q=q/res;//q=3/1=3;
g=gcd(q,k)=1,break
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

import java.util.Scanner;public class solution3 {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int t = sc.nextInt();for (int i = 0; i < t; i++) {long p = sc.nextLong();long q = sc.nextLong();long k = sc.nextLong();System.out.println(Pri(p, q, k));}sc.close();}// 判断是否是有限小数public static String Pri(long p,long q,long k){//把分数化成最简分数,去掉 p 和 q 的最大公因子。这样剩下的 q 才是真正要判断的分母。long res=gcd(p,q);q=q/res;while(true){ long g = gcd(q, k);if (g == 1) break;q /= g;  // 继续用 k 的质因子约掉 q}//return (q==1)?"yes":"no";if(q==1){return "yes";}else{return "no";}}public static long gcd(long p,long q){while(q!=0){long tmp=p%q;p=q;q=tmp;}return p;}}
http://www.dtcms.com/a/358886.html

相关文章:

  • STM32G474 IAP 双bank升级的坑
  • git的三种分区与分支的关系
  • Pomian语言处理器研发笔记(二):使用组合模式定义表示程序结构的语法树
  • for in+逻辑表达式 生成迭代对象,最后转化为列表 ——注意list是生成器转化为列表,但[生成器]得到的就是一个列表,其中包含一个生成器元素
  • HarmonyOS 持久化存储:PersistentStorage 实战指南
  • Kafka面试精讲 Day 2:Topic、Partition与Replica机制
  • Midscene.js:AI驱动的UI自动化测试框架
  • PLSQL Developer 12.0.1 x64 安装步骤详解(附Oracle连接设置|附安装包下载)​
  • SQL 学习
  • 探索 XGBoost 与 LightGBM 的差异:哪个更适合你的项目?
  • 【Pytorch】生成对抗网络实战
  • 快消品牌如何用 DAM 管理万张素材?
  • Coze源码分析-API授权-编辑令牌-后端源码
  • MySQL视图、存储过程与触发器详解
  • 实战指南|解锁 Highcharts 图表导出与数据格式优化
  • windows32位下载谷歌浏览器的地址
  • Git提交信息
  • 不用公网IP也能?cpolar实现Web-Check远程安全检测(1)
  • Qt 窗口 - 3
  • 弱内存模型和强内存模型架构(Weak/Strong Memory Model)
  • stack queue的实现 deque的底层结构 priority_queue的实现
  • easy-http类似feign的轻量级http客户端工具
  • C++三方服务异步拉起
  • 针对 “TCP 连接中断 / 终止阶段” 的攻击
  • K8s卷机制:数据持久化与共享
  • 当“循环经济”遇上“小程序”,旧物回收正迎来“智慧”升级
  • 奥普新汽车声学测试方案书
  • 谷歌 “Nano Banana“ 深度解析:AI 图像的未来是精准编辑,而非从零生成
  • 构建现代化的“历史上的今天“网站:从API到精美UI的全栈实践
  • jumpserver