牛客选择结构练习题——可编程拖拉机比赛

题目链接:https://ac.nowcoder.com/acm/contest/19304/U

题目描述

“这个比赛,归根结底就是控制一个虚拟的小拖拉机跑完整个赛道。一般一场比赛会有 9 个到 13 个赛道,最后看能跑完多少个赛道。”
通常在一场可编程拖拉机比赛中,分别会有实际参赛队伍数 10%、20%、30% 向下取整的队伍获得金、银、铜牌,其余队伍获得荣誉提名,俗称“铁牌”。
但是主办方往往会多准备一些奖牌,那么在发奖牌的时候会按照比例向上取整发出的奖牌以减少浪费,就会有一些原本获得银牌的队伍获得了金牌。
现在给出一个赛区的规模,也就是这个赛区的实际参赛队伍数,小 Q 同学想知道有多少队伍的奖牌会由银变金、由铜变银、由铁变铜。
 

输入描述:

输入只有一行,包含一个整数 n (10 <= n <= 1000),表示实际参赛队伍数。

输出描述:

输出一行,包含三个由空格分隔的整数,分别表示奖牌会由银变金、由铜变银、由铁变铜的队伍数。

示例:

输入  115

输出  1 1 2

按照下取整规则只发 11 块金牌的话,第 12 名原本是银牌,但是按照上取整规则发 12 块金牌,第 12 名是金牌,就由银变金了。

关于 向上/下 取整的一些函数

函数名称说明
floor()不大于自变量的最大整数
ceil()不小于自变量的最小整数
round()四舍五入到最邻近的整数
fix()朝零方向取整

代码:

#include<bits/stdc++.h>
using namespace std;
int cha(int x,int y) { return (y-x);}//求两数之差(x2>=x1),所以不用加abs绝对值函数
int main()
{
    int n;
    cin>>n;
    int a1=floor(0.1*n),b1=floor(0.2*n),c1=floor(0.3*n); //x1代表向上取整的牌子数
    int a2=ceil(0.1*n),b2=ceil(0.2*n),c2=ceil(0.3*n); //x2代表向下取整后的牌子数
cout<<cha(a1,a2)<<" "<<cha(b1,b2)+cha(a1,a2)<<" "<<cha(c1,c2)+cha(b1,b2)+cha(a1,a2);
//输出结果
return 0;
}

大家有什么意见和建议一起讨论和交流!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值