1. 程式人生 > >Wannafly挑戰賽5 B【數學規律】

Wannafly挑戰賽5 B【數學規律】

題目描述
“這個比賽,歸根結底就是控制一個虛擬的小拖拉機跑完整個賽道。一般一場比賽會有 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; }