猜數字題(Problem ID 1172)

2021-07-07 03:17:16 字數 1281 閱讀 8880

題址:

problem description

猜數字遊戲是gameboy最喜歡的遊戲之一。遊戲的規則是這樣的:計算機隨機產生乙個四位數,然後玩家猜這個四位數是什麼。每猜乙個數,計算機都會告訴玩家猜對幾個數字,其中有幾個數字在正確的位置上。

比如計算機隨機產生的數字為1122。如果玩家猜1234,因為1,2這兩個數字同時存在於這兩個數中,而且1在這兩個數中的位置是相同的,所以計算機會告訴玩家猜對了2個數字,其中乙個在正確的位置。如果玩家猜1111,那麼計算機會告訴他猜對2個數字,有2個在正確的位置。

現在給你一段gameboy與計算機的對話過程,你的任務是根據這段對話確定這個四位數是什麼。

input

輸入資料有多組。每組的第一行為乙個正整數n(1<=n<=100),表示在這段對話中共有n次問答。在接下來的n行中,每行三個整數a,b,c。gameboy猜這個四位數為a,然後計算機回答猜對了b個數字,其中c個在正確的位置上。當n=0時,輸入資料結束。

output

每組輸入資料對應一行輸出。如果根據這段對話能確定這個四位數,則輸出這個四位數,若不能,則輸出"not sure"。

sample input

64815 2 1

5716 1 0

7842 1 0

4901 0 0

8585 3 3

8555 3 2

24815 0 0

2999 3 3

0sample output

3585

not sure

思路:猜數字主要需要做的是把猜測的四位數字劃分千位、百位、十位和個位,同理計算機產生的數也分為千位、百位、十位和個位,分別進行比較得出b,c的值,若比較到最後一行,資料都正確,則輸出猜測到的數字num,否則輸出not sure。關鍵就是在於劃分數字進行比較的過程。具體的見**。

ac**:

#include#define size 100

struct node

node[size];

bool pipei(int k,int num) //第k行的node[k].a/b/c 與num(四位數1000-9999)匹配函式

} }if(count!=node[k].b)

return false;

return true;

}int main()

{ int n;

while(scanf("%d",&n)!=eof && n)

{ int i,num,result,right=0;

bool flag;

for(i=0;i

猜數字邏輯題!

題目 1 20的兩個數把和告訴a,積告訴b,a說不知道是多少,b也說不知道,這時a說我知道了,b接著說我也知道了,問這兩個數是多少?再補充一道 病狗問題 村子裡有50戶人,每戶人養一條狗,有一天村子裡出現了瘟疫,確定存在有瘋狗了,而每戶人只能看見別人的狗瘋了,看不見自己狗瘋了,並且確定自己狗瘋了就會...

LeetCode刷題 374 猜數字大小

猜數字遊戲的規則如下 每輪遊戲,我都會從 1 到 n 隨機選擇乙個數字。請你猜選出的是哪個數字。如果你猜錯了,我會告訴你,你猜測的數字比我選出的數字是大了還是小了。你可以通過呼叫乙個預先定義好的介面 int guess int num 來獲取猜測結果,返回值一共有 3 種可能的情況 1,1 或 0 ...

演算法實現題 1 1 統計數字問題

問題描述 一本書的頁碼從自然數 1 開始順序編碼直到自然數 n。書的頁碼按照通常的習慣編排,每個頁碼都不含多餘的前導數字 0。例如,第 6 頁用數字 6 表示,而不是 06 或 006 等。數 字計數問題要求對給定書的總頁碼 n,計算出書的全部頁碼中分別用到多少次數字 0,1,2,9。程式設計任務 ...