蓝桥杯每日一题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;
}
相关推荐
eachin_z24 分钟前
力扣刷题(第四十九天)
算法·leetcode·职场和发展
眼镜哥(with glasses)5 小时前
蓝桥杯 国赛2024python(b组)题目(1-3)
数据结构·算法·蓝桥杯
每次的天空13 小时前
Android第十三次面试总结基础
android·面试·职场和发展
珂朵莉MM14 小时前
2021 RoboCom 世界机器人开发者大赛-高职组(初赛)解题报告 | 珂学家
java·开发语言·人工智能·算法·职场和发展·机器人
前端小崔16 小时前
前端面试题之ES6保姆级教程
开发语言·前端·javascript·面试·职场和发展·ecmascript·es6
互联网杂货铺1 天前
完美搭建appium自动化环境
自动化测试·软件测试·python·测试工具·职场和发展·appium·测试用例
鑫鑫向栄1 天前
[蓝桥杯]修改数组
数据结构·c++·算法·蓝桥杯·动态规划