蓝桥杯每日一题2023.11.21

题目描述

"蓝桥杯"练习系统 (lanqiao.cn)

题目分析

思路:

1.去重排序将其进行预处理

2.用gcd得到最简比值

3.用gcd_sub分别计算分子、分母的指数最大公约数

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
const int N = 110;
typedef long long ll;
ll n, cnt, a[N], x[N], y[N];
ll gcd(ll a, ll b)
{
	return b ? gcd(b , a % b) : a;
}
ll gcd_sub(ll a, ll b)
{
	if(a < b)swap(a, b);
	if(b == 1)return a;
	return gcd_sub(b, a / b);
}
int main()
{
	cin >> n;
	for(int i = 1; i <= n; i ++)
	{
		cin >> a[i];
	}
	sort(a + 1, a + 1 + n);
	for(int i = 2; i <= n; i ++)
	{
		if(a[i] != a[i - 1])
		{
			ll d = gcd(a[i], a[1]);
			cnt ++; 
			x[cnt] = a[i] / d;//分子 
			y[cnt] = a[1] / d;//分母 
		}
	}
	ll u = x[1], d = y[1];
	for(int i = 2; i <= cnt; i ++)
	{
		u = gcd_sub(u, x[i]);
		d = gcd_sub(d, y[i]);
	}
	cout << u << '/' << d;
	return 0;
}
相关推荐
帅次1 小时前
Android 应用高级面试:Window 近1年高频追问 18 题
android·面试·职场和发展
Hi李耶1 小时前
【LeetCode】9-回文数
算法·leetcode·职场和发展
杨逢昌工厂6S管理1 天前
44-6S 管理回潮问题根治:归位三定闭环法的体系化落地路径|杨逢昌
经验分享·笔记·职场和发展·学习方法
程序员三藏1 天前
自动化测试详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
卡兹墨1 天前
iOS从打包到上架详细流程
ios·职场和发展·蓝桥杯
tkevinjd1 天前
力扣239-滑动窗口最大值
算法·leetcode·职场和发展
only-qi2 天前
大模型Agent面试攻略:落地工程痛点、评估体系与Agentic RAG核心精讲
人工智能·算法·面试·职场和发展·langchain·rag
数字宝藏2 天前
15本电子书分享
职场和发展·职场发展·教育电商
程序猿乐锅2 天前
【数据结构与算法 | 第七篇】二维数组:力扣48,54,59,151
算法·leetcode·职场和发展