noip2014普及组 比例简化

简介: 题目描述 在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果。例如,对某一观点表示支持的有1498 人,反对的有 902人,那么赞同与反对的比例可以简单的记为1498:902。 不过,如果把调查结果就以这种方式呈现出来,大多数人肯定不会满意。

题目描述

在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果。例如,对某一观点表示支持的有1498 人,反对的有 902人,那么赞同与反对的比例可以简单的记为1498:902。

不过,如果把调查结果就以这种方式呈现出来,大多数人肯定不会满意。因为这个比例的数值太大,难以一眼看出它们的关系。对于上面这个例子,如果把比例记为5:3,虽然与真实结果有一定的误差,但依然能够较为准确地反映调查结果,同时也显得比较直观。

现给出支持人数A,反对人数B,以及一个上限L,请你将A比B化简为A’比B’,要求在A’和B’均不大于L且A’和B’互质(两个整数的最大公约数是1)的前提下,A’/B’ ≥ A/B且A’/B’ - A/B的值尽可能小。

输入格式:
输入共一行,包含三个整数A,B,L,每两个整数之间用一个空格隔开,分别表示支持人数、反对人数以及上限。
输出格式:
输出共一行,包含两个整数A’,B’,中间用一个空格隔开,表示化简后的比例。

输入样例:
1498 902 10
输出样例:
5 3

说明

对于100%的数据,1 ≤ A ≤ 1,000,000,1 ≤ B ≤ 1,000,000,1 ≤ L ≤ 100,A/B ≤ L。

 

解题思路:

在1到L范围内分别枚举A‘和B’的组合,然后逐一检验是否所要找的解即可。注意:输入的数据是整数,题目判断大小关系的地方多数是用浮点数判断,要加以转换。

代码:

 1 #include<stdio.h>
 2 int gcd(int a,int b);
 3 int main()
 4 {
 5     int a,b,L;
 6     int i,j;
 7     int mina,minb;
 8     double  min,tt,t;
 9     //freopen("ratio.in","r",stdin);
10     //freopen("ratio.ans","w",stdout);
11     scanf("%d%d%d",&a,&b,&L);
12     t=a*1.0/b;
13     min=200;
14     for(i=1;i<=L;i++)
15     {
16         for(j=1;j<=L;j++)
17         {
18             tt=i*1.0/j;
19             if(tt>=t&&tt<min&&gcd(i,j)==1)
20             {
21                 min=tt;
22                 mina=i;
23                 minb=j;
24             }
25         }
26     }
27     printf("%d %d\n",mina,minb);
28     return 0;
29 }
30 int gcd(int a,int b)
31 {
32     int t;
33     if(a<b)
34     {
35         t=a;a=b;b=t;
36     }
37     /*if(b==0) return a;
38     else return gcd(b,a%b);*/
39     t=a%b;
40     while(t!=0)
41     {
42         a=b;
43         b=t;
44         t=a%b;
45     }
46     return b;
47 }
View Code

 

相关文章
N..
|
开发框架 前端开发 JavaScript
Bootstrap轮播图
Bootstrap轮播图
N..
381 1
|
6月前
|
人工智能 编解码 监控
《AV1解码生态全景图》,迄今最全面的AV1解码生态报告
截至2025年11月最完整详尽的 AV1 解码生态全景报告
|
人工智能 JavaScript 语音技术
HarmonyOS NEXT AI基础语音服务-语音输入
本案例展示了一个基于AI语音服务的实时语音转文字功能,通过麦克风采集音频并转换为文本。主要步骤包括:申请麦克风权限、初始化语音识别引擎、设置识别回调、配置音频参数及实现UI交互(长按按钮控制录音启停)。代码使用TypeScript编写,涵盖权限管理、引擎生命周期、异常处理等核心环节,确保功能稳定运行。适用于需要实时语音转写的场景,如会议记录、语音输入等。
HarmonyOS NEXT AI基础语音服务-语音输入
|
开发者
HarmonyOS NEXT 实战系列09-生命周期
页面与组件生命周期介绍:页面生命周期(@Entry装饰)包含onPageShow、onPageHide、onBackPress等接口,分别在页面显示、隐藏和返回按钮点击时触发;组件生命周期(@Component装饰)包含aboutToAppear和aboutToDisappear,在组件创建与销毁时回调。示例代码展示了生命周期函数的使用场景及执行时机,帮助开发者更好地管理页面和组件状态。
HarmonyOS NEXT 实战系列09-生命周期
|
数据安全/隐私保护 SoC
基于PI控制的三相整流器控制系统的simulink建模与仿真,包含超级电容充电和电机
本课题基于MATLAB 2022a的Simulink平台,构建了PI控制的三相整流器控制系统,用于PMSM电机发电并为超级电容充电。系统通过调节电流和电压,实现高效能量管理和动力输出。核心模块包括三相整流器、超级电容及其显示模块、PI控制器。仿真结果无水印,完整展示了系统性能。系统原理涵盖交流转直流、超级电容快速充放电及电机驱动,适用于多种工况下的能量管理。
|
Java Windows
[main] DEBUG Sigar - no sigar-amd64-winnt.dll in java.library.path org.hyperic.sigar.SigarException:
[main] DEBUG Sigar - no sigar-amd64-winnt.dll in java.library.path org.hyperic.sigar.SigarException:
476 1
|
安全 数据安全/隐私保护 网络虚拟化
亲测有效:注册谷歌邮箱账号gmail的最新教程
谷歌邮箱,也被称为 Gmail,是由谷歌公司开发的一项电子邮件服务。自 2004 年首次推出以来,Gmail 迅速成为全球最受欢迎的电子邮件服务之一。截至 2023 年,Gmail 拥有超过 18 亿活跃用户。Gmail 以其简洁易用的界面、强大的功能和高可靠性著称,成为个人、企业和组织广泛使用的电子邮件平台。
4949 1
|
前端开发 开发者
基于CSS mask-image 实现炫酷图片过渡效果之星球大战
基于CSS mask-image 实现炫酷图片过渡效果之星球大战
484 0
|
前端开发 API CDN
Electron实现你自己的Markdown编辑软件
Electron实现你自己的Markdown编辑软件
|
Linux Shell 数据安全/隐私保护
嵌入式Linux系统小技巧之U盘自动运行脚本
嵌入式Linux系统小技巧之U盘自动运行脚本
741 1