第七届年蓝桥杯省赛C/C++ A组 最大比例

2023-11-09

题目

X星球的某个大奖赛设了M级奖励。每个级别的奖金是一个正整数。
并且,相邻的两个级别间的比例是个固定值。
也就是说:所有级别的奖金数构成了一个等比数列。比如:
16,24,36,54
其等比值为:3/2
现在,我们随机调查了一些获奖者的奖金数。
请你据此推算可能的最大的等比值。

输入格式:
第一行为数字N(n<100),表示接下的一行包含N个正整数
第二行N个正整数Xi(Xi<1 000 000 000 000),用空格分开。每个整数表示调查到的某人的奖金数额
要求输出:
一个形如A/B的分数,要求A、B互质。表示可能的最大比例系数
测试数据保证了输入格式正确,并且最大比例是存在的。

例如,输入:
3
1250 200 32
程序应该输出:
25/4
再例如,输入:
4
3125 32 32 200
程序应该输出:
5/2
再例如,输入:
3
549755813888 524288 2
程序应该输出:
4/1

资源约定:
峰值内存消耗 < 256M
CPU消耗 < 3000ms

请严格按要求输出,不要画蛇添足地打印类似:“请您输入…” 的多余内容。 所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0 注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。 注意:
所有依赖的函数必须明确地在源文件中 #include , 不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。

思路

思路都在注释里,按计算机的运行步骤从main开始你会看懂的。

代码

#include<stdio.h>
#include<stdlib.h>
long long num[101],temp1;
int yon=0,yonPrintf=0;
int cmp(const void *a,const void *b)//基本快速排序,之前测试时用的,但是这题没有使用这个 
{
    return *(long long *)a-*(long long *)b;
}
void f(int z,int m,int min,int max)//用于判断不同比例(z/m)是否为正确比例 
{
    long long temp=num[0];
    for(int i=1;;i++){
        if(temp*z/m==num[min+1]||temp==num[min+1]){//如果当前的temp值乘以比例(z/m)等于下一个数字的值或者temp等于下一个数字的值则min加一判断下下个数字的值 
            min++;
            if(max==min){
                yon++;
                yonPrintf=1;
                return ;
            }
        }else{
            if(temp*z/m>num[min+1]){//如果当前的值乘以给出的比例大于数字的值则此比列不是我们想要的 
                yonPrintf=-1;
                return ;
            }else{
                temp=temp*z/m;//如果没有大于继续乘以比例(z/m) 
                //num[min+2];
                //num[min+3];
            }
        }
    }
}
int main()
{
    int m,numerator,denominator,nu,de;
    scanf("%d",&m);         //输入个数 
    for(int i=0;i<m;i++){
        scanf("%lld",&num[i]);  //输入数字储存在num数组中 
    }
    for(int i=0;i<m-1;i++){//冒泡排序,对输入的数组进行升序排列 
        for(int j=0;j<m-i-1;j++){
            if(num[j]>num[j+1]){
                temp1=num[j];
                num[j]=num[j+1];
                num[j+1]=temp1;
            }
        }
    }
//  qsort(num,m,sizeof(num[0]),cmp);//也可用这函数排序,但数字较大不行,上网查了一下还是不行,求大神指点 
    for(int k=1;;k++){//k代表分子 
        if(yon==1)
        break; 
        for(int i=1;i<k;i++){//i代表分母 
            if(yon==1)
            break;
            if(k==i||(k%i==0&&i!=1)||(i%k==0&&k!=1)||k<i){//丢弃比例为小于等于1和不是互质的数 
                continue;
            }else{
                f(k,i,0,m-1);
                if(yon==1){
                    numerator=k;
                    denominator=i;
                }
            }
        }
    }

    for(;;){//此循环用于判断比例分数同时平方时是否可行,可行则输出同时平方的值 
        nu=numerator*numerator;
        de=denominator*denominator;
        f(nu,de,0,m-1);
        if(yonPrintf==-1){
            break;
        }else{
            numerator=nu;
            denominator=de;
        }
    }
    printf("%d/%d",numerator,denominator);//输出 
    return 0;
}

我不是大神,如有不对之处请指点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

第七届年蓝桥杯省赛C/C++ A组 最大比例 的相关文章

  • 蓝桥杯:优秀的拆分

    蓝桥杯 优秀的拆分https www lanqiao cn problems 801 learning 目录 题目描述 输入描述 输出描述 输入输出样例 输入 输出 输入 输出 题目分析 位运算 AC代码 Java 题目描述 一般来说 一个
  • 蓝桥杯第十一届青少年Python组省赛试题

    选择题答案 ADDCA s input if s 2 er or s 2 ly s s 2 elif s 3 ing s s 3 print s n int input cnt 0 for i in range 2 n s 0 for j
  • 蓝桥杯 c/c++ 算法提高 最长滑雪道

    算法提高 最长滑雪道 资源限制 时间限制 1 0s 内存限制 256 0MB 问题描述 小袁非常喜欢滑雪 因为滑雪很刺激 为了获得速度 滑的区域必须向下倾斜 而且当你滑到坡底 你不得不再次走上坡或者等待升降机来载你 小袁想知道在某个区域中最
  • 蓝桥杯青少组python:第十三届省赛第一场

    选择题 1 下列二进制中最大数是 A 110 B 1010 C 1100 D 1001 2 以下方法 不是对文件读操作的是 A readline B readlines C readtext D read 3 以下对turtle库中函数描述
  • 蓝桥杯 辗转相除法---求最大公约数

    1 例子 例如 求 319 377 319 377 0 余319 319 377 377 319 377 319 1 余58 377 319 319 58 319 58 5 余29 319 58 58 29 58 29 2 余0 58 29
  • 第十一届蓝桥杯 ——互质(gcd求最大公约数)

    gcd最大公约数 Rudy的博客 CSDN博客 gcdhttps blog csdn net xiaoyue article details 83239172 ops request misc 257B 2522request 255Fid
  • 递归与分治

    递归的定义 程序调用自身的编程技巧称为递归 递归做为一种算法在程序设计语言中广泛应用 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法 它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解 递归策略只需少量
  • SEGGER_RTT_printf()函数实现打印浮点、负数-示例

    概述 最近公司项目换另一款gsensor 用到了浮点数打印 又不想使用串口来打印数据 在此做个笔录 通过修改源码方式实现 一 修改源码 1 在 SEGGER RTT printf c 中 的 int SEGGER RTT vprintf u
  • 蓝桥云课——长草 Python (广度优先遍历)

    这种题应该不是Python组的吧 跑了跑其他人的题解发现最后一组解都会超时 权当抛砖引玉了吧 题目地址 长草 先上BFS模板 def Bfs 参数 while quene 空 cur quene pop 0 弹出队列第一项 for code
  • 树与二叉树(二叉树的表示,性质,遍历,还原)

    1 基本术语 A 或B 是I的祖先 I是A 或B 的子孙 D是I的双亲 I是D的孩子 节点的孩子个数称为节点的度 树中节点的最大度数称为树的度 度大于0的节点称为分支节点 度等于0的节点称为叶节点 定义树根为第一层 则 树的深度 高度 为5
  • 蓝桥杯:斐波那契数列最大公约数

    题目表示的很明确 要用两个算法 斐波那契数列是很经典的dp问题 最大公约数是很经典的辗转相除法 从而我理所应当的就定义一个数组存放斐波那契数列 long long int F 2021 0 F 1 1 F 2 1 for int i 3 i
  • 第十四届蓝桥杯程序设计C++B组 (详细图解+保姆级注释)

    0 写在前面 本届CB组题目难度较往年整体提升了一些 考察知识点全面 题目质量很高 推荐备赛蓝桥杯或感兴趣的同学深入研究本套题 废话不多说 直接上干货 一 冶炼金属 签到题难度 考察数论分块知识or二分 有部分同学可能知道下取整的定义 但是
  • 蓝桥杯-2020年省赛-回文日期

    498 import datetime n input start datetime date int n 4 int n 4 6 int n 6 delta datetime timedelta days 1 flag 0 for i i
  • 剑指Offer 12—矩阵中的路径

    题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 如果 word 存在于网格中 返回 true 否则 返回 false 单词必须按照字母顺序 通过相邻的单元格内的字母构成 其中 相邻 单元格是那些水平相邻
  • 蓝桥杯真题:迷宫

    目录 题目描述 运行限制 dfs bfs 结果 题目描述 本题为填空题 只需要算出结果后 在代码中使用输出语句将所填结果输出即可 下图给出了一个迷宫的平面图 其中标记为 11 的为障碍 标记为 00 的为可以通行的地方 010000 000
  • 2023蓝桥杯python 组试题A:2023

    题目 请求出在 12345678 至 98765432 中 有多少个数中完全不包含 2023 完全不包含 2023 是指无论将这个数的哪些数位移除都不能得到 2023 例如 20322175 33220022 都完全不包含 2023 而 2
  • 2022年第十四届蓝桥杯模拟赛【核酸日期】C语言详解

    目录 题目 思路 代码实现 题目 核酸日期 问题描述 如果周一做核酸 周二显示核酸天数为 1 天 周三显示 2 天 以此类推 周六显示 5 天 周日显示 6 天 小蓝在某一天做了一次核酸 请问他的核酸显示为几天 已知做核酸和查看核酸不是在同
  • 蓝桥杯-稍大的字符串

    题目 标题 稍大的串 串可以按照字典序进行比较 例如 abcd 小于 abdc 如果给定一个串 打乱组成它的字母 重新排列 可以得到许多不同的串 在这些不同的串中 有一个串刚好给定的串稍微大一些 科学地说 它是大于已知串的所有串中最小的串
  • 七段码(建图+搜索+并查集)

    思路 step1 邻接表建图 相邻为1 不相邻为0 题目就等价为在图中求连通子图的个数 step2 深度搜索每条边 并存储下来 step3 对选择的边用并查集保存下来 然后看father i i的个数 等于1 表示连通 否则表示不连通 易错
  • 蓝桥杯python,acwimg,备赛笔记

    目录 一 python基本的语法 二 掌握python标准库 三 acwimg算法课 四 注意事项 四 刷题 五 用python刷算法题中的小技巧 六 完整代码 一 python基本的语法 学到面向对象就差不多了 不需要太深入学习面向对象后

随机推荐

  • 后渗透中提权的必要性和思路

    很多同学常常问起 渗透测试中获取服务器权限后一定要提权吗 为什么要提权呢 故有此文 提权的必要性 在一场完整的渗透测试中 如果已经获取服务器权限 此时就进入后渗透阶段了 渗透的最终目的是获取服务器的最高权限 即windows操作系统中管理员
  • 牛客网_剑指Offer_Python实现_更新中

    剑指Offer编程题汇总 第1题 二维数组中的查找 第2题 替换空格 第3题 从尾到头打印链表 第4题 重建二叉树 第5题 用两个栈实现队列 第6题 旋转数组的最小数字 第7题 斐波那契数列 第8题 跳台阶 第9题 变态跳台阶 第10题 矩
  • 计算圆周率

    根据用户输入计算圆周率 import math import random def type judge pi type 接收一个字符串为参数 根据参数调用相应函数计算圆周率 if pi type 割圆法 times int input 输
  • StringBuffer 和StringBuilder的应用场景

    StringBuffer线程安全 StringBuilder线程不安全 StringBuffer比StringBuilder慢 网络上有很多的文章有说到他们两个的区别 以及应用场景 这里说下个人感悟 StringBuffer更多会和修改全局
  • 伯努利分布、二项分布、泊松分布、指数分布、Gamma分布的联系

    伯努利分布 0 1分布 伯努利分布是二项分布在N 1时的特例 随机变量为取值为0或者1 二项分布 N次重复且独立的伯努利实验 随机变量为在N次实验中出现某种情况 概率为p 的次数K 泊松分布 二项分布的极限形式 N趋于无穷大 P趋于0 描述
  • 工具:语雀导出MarkDown文档后图片修复

    微信公众号 乌鸦安全 扫取二维码获取更多信息 01 描述 在比较早的时候 我比较纠结记笔记的产品 最初的时候是在使用Typora在本地写Markdown文档 后来试用了一下印象笔记 但是它的缺点就是贵 而且上传的流量很少 在之后氪金的一刹那
  • 从一张表数据选出,插入另外一张表

    在CSDN搜到一篇博文原文如下 今天在做数据库操作的时候 有一个需求是将A表中的前500000条数据查出来 然后插入到表B中 表A与表B具有同样的字段类型 数据库为Oracle 10g 数据库管理工具用的PL SQL 由于数据库不是特别的熟
  • vue中使用WebSocket(ui用的ant design)

    那些原理 和什么情况下时候适合用WebSocket我这就不多说 直接上代码 哈哈 拷贝即用
  • fast虚拟服务器地址,fast虚拟服务器地址

    fast虚拟服务器地址 内容精选 换一换 参数说明如下 VPC网段 VPC的地址范围 根据规划的子网信息 配置VPC的地址范围 子网网段 VPC中默认子网的地址范围 需要在VPC的子网地址范围内 根据规划的信息进行配置 DNS服务器地址 默
  • 多个Livox雷达点云合成及使用ROS发布

    项目场景 因为单个Livox avia的FOV只有70 无法覆盖车前方的所有范围 所以用了三个Livox avia以实现180 前方位覆盖 但由于三个雷达均是独自采集 所以需要对每个雷达采集的各帧点云进行合并 用于建图 以下工作均建立于已经
  • [C进阶] 数据在内存中的存储——整形篇

    前言 学习一门语言就像是了解一个陌生人 首先我们要做的是从外貌和举止来宏观上考察一个人的特点 然后逐渐的对其进行深入了解 最终变得知根知底 畅所欲言 本章我们对数据存储的探讨其实就是在对C语言进行深入了解 因为只有知根知底才能畅所欲言 本章
  • 路由器选择使用指南这三Openwrt

    一 关于Openwrt 嗯 这个和华硕没什么关系 虽然也是亲戚 同样源于linux 所以linux最牛 关于这个固件可以说的就多了 前面padavan比较水 这个多写点 Openwrt有很多大神小神毛神小白在为它编译固件 说到这个就不得不提
  • CEF使用的几个注意点

    转自http www cnblogs com gongxijun p 4857977 html CEF为chrome浏览器的切入其他浏览器中的轻量级框架 开发的客户端的时候 这是作为界面显示的首先 可以增强客户的易变性 可塑性 在开发的过程
  • 计算机网络中的泊松分布与指数分布

    一 概率论知识 1 1 泊松分布 一个时间段里某件事发生的概率 用泊松分布来描述 1 2 指数分布 两个事件的间隔时间为某个值的概率 用指数分布来描述 1 3 两者关系 其中 服从泊松分布的事件 其间隔时间服从指数分布 二 计算机网络知识
  • 深度学习撞墙了?

    转自 机器之心 早在 2016 年 Hinton 就说过 我们不用再培养放射科医生了 如今几年过去 AI 并没有取代任何一位放射科医生 问题出在哪儿 近年来 AI 在大数据 大模型的深度学习之路上一路狂奔 但很多核心问题依然没有解决 比如如
  • redis监控指标

    服务器系统数据采集 Redis Server数据采集 Redis响应时间数据采集 Redis监控Screen b b b 一 服务器存活监控 1 gt ping监控告警 2 gt CPU 3 gt 丢包率 b 二 Redis Server监
  • 使用数字陷波器滤除工频信号

    在实际测量时经常会受到工频信号 交流50Hz 的干扰 有时干扰还很大 有用信号完全被淹没了 可以应用数字陷波器来消除工频信号的干扰 数字陷波器函数如下 函数 iirnotch 功能 数字陷波器设计 调用格式 b a iirnotch Wo
  • vscode报错:SyntaxError: Cannot use import statement outside a module

    报错内容 E workspace2 cronmall ui npmdemo modulees61 02 js 2 import getList save from 01 js SyntaxError Cannot use import st
  • DOM 事件相关知识总结——事件绑定、事件流(事件冒泡、捕获)

    1 事件绑定方式 1 直接给元素添加事件属性
  • 第七届年蓝桥杯省赛C/C++ A组 最大比例

    题目 X星球的某个大奖赛设了M级奖励 每个级别的奖金是一个正整数 并且 相邻的两个级别间的比例是个固定值 也就是说 所有级别的奖金数构成了一个等比数列 比如 16 24 36 54 其等比值为 3 2 现在 我们随机调查了一些获奖者的奖金数