L1-056 猜數字 (20分) C++
題目描述
一群人坐在一起,每人猜一個 100 以內的數,誰的數字最接近大家平均數的一半就贏。本題就要求你找出其中的贏家。
輸入格式
輸入在第一行給出一個正整數N(≤10^4)。隨後 N 行,每行給出一個玩家的名字(由不超過8個英文字母組成的字串)和其猜的正整數(≤ 100)。
輸出格式
在一行中順序輸出:大家平均數的一半(只輸出整數部分)、贏家的名字,其間以空格分隔。題目保證贏家是唯一的。
輸入樣例
7
Bob 35
Amy 28
James 98
Alice 11
Jack 45
Smith 33
Chris 62
輸出樣例
22 Amy
分析
由於答案唯一,所以答案的姓名與分數是唯一對應的關係,才用雜湊表進行儲存。
C++ 程式碼
#include<bits/stdc++.h>
using namespace std;
int n,sl,sh;
double sum;
unordered_map<int,string> score;
bool st[101];
int main()
{
cin>>n;
string name;
int sc;
for(int i=0;i<n;i++)
{
cin>>name>>sc;
score[sc]=name;
sum+=sc;
st[sc]=true; //此數已經出現
}
sum/=(n*2);
sum=round(sum); //四捨五入
for(int i=sum;i>-1;i--) //查詢此時距離sum最近的數
{
if(st[i])
{
sl=i;
break;
}
}
for(int i=sum+1;i<101;i++)
{
if(st[i])
{
sh=i;
break;
}
}
if(int(sum)-sl<sh-int(sum)) cout<<sum<<" "<<score[sl]<<endl;
else cout<<sum<<" "<<score[sh]<<endl;
return 0;
}
相關文章
- L1-056 猜數字 分數 20
- 猜數字
- 猜數字11.9
- 猜數字遊戲遊戲
- [TJOI2009] 猜數字
- leedcode-猜數字大小
- Shell猜數字遊戲遊戲
- 猜數字小遊戲遊戲
- 演算法 猜數字演算法
- 猜數字的介面版
- 【Java】——猜數字遊戲Java遊戲
- LeetCode-374-猜數字大小LeetCode
- 使用者猜數字遊戲遊戲
- 以太坊智慧合約-猜數字
- linux實現猜數字小遊戲Linux遊戲
- LeetCode 299 猜數字遊戲 Java實現LeetCode遊戲Java
- 7-24 猜數字遊戲 (15分)遊戲
- LeetCode每日一題: 猜數字大小(No.374)LeetCode每日一題
- C#之簡易猜數字遊戲C#遊戲
- 一個拖拉且錯誤的猜數字程式
- Rust學習之旅1——寫個猜數字遊戲Rust遊戲
- 【python小練習】簡單的猜數字遊戲Python遊戲
- C++中的魔鬼數字C++
- wordle game 猜字遊戲GAM遊戲
- 透過編寫“猜數字”遊戲來學習 Awk遊戲
- Shell指令碼——Linux系統中的時間猜數字指令碼Linux
- C++之數字計數演算法C++演算法
- 開心檔之C++ 數字C++
- 【Java基礎教程】用Java實現猜數字小遊戲Java遊戲
- 統計位數為偶數的數字(C++)C++
- LeetCode題解(1178):猜字謎(Python)LeetCodePython
- 1102:與指定數字相同的數的個數(C C++)C++
- 以猜數字遊戲引出的分治演算法的理解與思考遊戲演算法
- c++判斷字串全是字母或數字C++字串
- c++中數字和字串的轉換C++字串
- C語言初學者(自學)做的一個猜數字小遊戲C語言遊戲
- c++中字元、字串和數字間的轉換C++字元字串
- 力扣 1342. 將數字變成 0 的操作次數 C++力扣C++