Wannafly挑戰賽5 B【數學規律】
阿新 • • 發佈:2019-02-12
題目描述
“這個比賽,歸根結底就是控制一個虛擬的小拖拉機跑完整個賽道。一般一場比賽會有 9 個到 13 個賽道,最後看能跑完多少個賽道。”
通常在一場可程式設計拖拉機比賽中,分別會有實際參賽隊伍數 10%、20%、30% 向下取整的隊伍獲得金、銀、銅牌,其餘隊伍獲得榮譽提名,俗稱“鐵牌”。
但是主辦方往往會多準備一些獎牌,那麼在發獎牌的時候會按照比例向上取整發出的獎牌以減少浪費,就會有一些原本獲得銀牌的隊伍獲得了金牌。
現在給出一個賽區的規模,也就是這個賽區的實際參賽隊伍數,小 Q 同學想知道有多少隊伍的獎牌會由銀變金、由銅變銀、由鐵變銅。
輸入描述:
輸入只有一行,包含一個整數 n (10 <= n <= 1000),表示實際參賽隊伍數。
輸出描述:
輸出一行,包含三個由空格分隔的整數,分別表示獎牌會由銀變金、由銅變銀、由鐵變銅的隊伍數。
示例1
輸入
115
輸出
1 1 2
說明
按照下取整規則只發 11 塊金牌的話,第 12 名原本是銀牌,但是按照上取整規則發 12 塊金牌,第 12 名是金牌,就由銀變金了。
#include<bits/stdc++.h>
using namespace std;
int main()
{
int n;
scanf("%d",&n);
if(n%10==0)
printf("0 0 0");
else if(n%5==0)
printf("1 1 2");
else printf("1 2 3");
return 0;
}
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int n;
while (scanf("%d",&n)!=EOF) {
int x,y,z,cnt=0;
x=(int) n*0.1;
y=(int) n*0.2;
z=(int) n*0.3;
double a=n*0.1;
if (a>x) {
a=x+1;
cnt=1;
}
else {
a=x;
cnt=0;
}
double b=n*0.2;
if (b>y) {
b=y+1+cnt;
cnt++;
}
else {
b=y+cnt;
}
double c=n*0.3;
if (c>z) {
c=z+1+cnt;
}
else {
c=z+cnt;
}
printf("%.0lf %.0lf %.0lf\n",a-x,b-y,c-z);
}
return 0;
}