首页 > 其他 > 详细

比例简化

时间:2019-11-11 15:21:00      阅读:95      评论:0      收藏:0      [点我收藏+]

链接:https://ac.nowcoder.com/acm/problem/16501
来源:牛客网

题目描述

在社交媒体上,经常会看到针对某一个观点同意与否的民意调查以及结果。例如,对某一观点表示支持的有 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 ’,中间用一个空格隔开,表示化简后的比例。
示例1

输入

1498 902 10

输出

5 3

备注:

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

解析:

穷举。双重循环分别在[1,L]范围内的i和j,三个约束条件

(1)A‘用循环变量 i 表示,B‘用循环变量 j 表示,互质(最大公约数为1)

(2)A‘/B‘≥A/B (i/j>=s)

(3)A‘/B‘-A/B 的值尽可能小(打擂台)

然后这道题目细节问题比较多,注意比值结果应该用实数保存和比较。建议用double类型

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <algorithm>
 4 #include <string>
 5 #include <cstring>
 6 #include <cstdlib>
 7 #include <cmath>
 8 #include <stack>
 9 #include <queue>
10 #include <set>
11 #include <map>
12 #include <vector>
13 #include <ctime>
14 #include <cctype>
15 #include <bitset>
16 #include <utility>
17 #include <sstream>
18 #include <complex>
19 #include <iomanip>
20 #define inf 0x3f3f3f3f
21 typedef long long ll;
22 using namespace std;
23 int A,B,L,a,b,jgA,jgB,bz,wc;
24 int main()
25 {
26     cin>>A>>B>>L;
27     double bz=A*0.1/B,wc=100000;
28     for(int i=1; i<=L; i++)
29     {
30         for(int j=1; j<=L; j++)
31         {
32             a=i;
33             b=j;
34             b=__gcd(a,b);
35             if(b==1)
36             {
37                 if(i*0.1/j>=bz&&i*0.1/j<wc+bz)
38                 {
39                     wc=i*0.1/j-bz;
40                     jgA=i;
41                     jgB=j;
42                 }
43             }
44         }
45     }
46     cout<<jgA<< <<jgB<<endl;
47     return 0;
48 }

 

比例简化

原文:https://www.cnblogs.com/mxnzqh/p/11834681.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!