蓝桥杯每日一题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;
}
相关推荐
程序员江念10 小时前
【最经典的79个】软件测试面试题(内含答案)提前备战“金九银十”
软件测试·面试·职场和发展
find1star11 小时前
LeetCode 25:K 个一组翻转链表
java·数据结构·算法·leetcode·链表·职场和发展·动态规划
童园管理札记13 小时前
CSDN 学前入门高质量指南:从零搭建编程学习体系
人工智能·经验分享·职场和发展·生活·学习方法
后台模板学习1 天前
2026最新面试真题:到达用英语怎么说背后的逻辑与源码剖析
面试·职场和发展·php
CoderYanger1 天前
前端基础——JavaScript(WebAPI)(下篇)
java·开发语言·前端·javascript·程序人生·面试·职场和发展
敲代码的嘎仔1 天前
自己设计了一个兑换码算法:自增ID + Base32转码 + 按位加权签名 + 异或混淆,面试被追问细节时终于不用慌了
java·数据库·mysql·算法·微服务·面试·职场和发展
aqiu1111111 天前
【数位 DP / 记忆化搜索】蓝桥云课 - 光轨区的 AI 数 题解
c++·算法·蓝桥杯·数位dp
程序员小远1 天前
自动化测试用例编写实例详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例