[C_AR178-易] 猜數字之提示
Time Limit: 2 seconds
問題描述 :
已知,猜數字是兩個人玩的遊戲,一方出題,另一方猜。出題的人要先想好一個「沒有重複數字」的 4 位整數,當作是答案,不能讓猜的人知道。猜的人就可以開始猜。每猜一次,出題者就要根據猜數給出「幾 A 幾 B 」,當作是提示,其中 A 前面的數字表示「數字猜中且位置也猜中」的個數,而 B 前的數字表示「數字猜中且位置沒猜中」的個數。例如,答案為 6234 而猜數 5246 ,則提示「 1A2B 」,因為 2 不但被猜中且位置也對了,記為 1A ,而 6 和 4 這兩個數字猜中且位置沒猜中,因此記為 2B ,合起來就是 1A2B 。
針對每一個題目,都只猜一次,然後程式就輸出該次猜數的提示。
輸入說明 :
程式首先要求輸入一個正整數,代表接下來有幾對「答案 - 猜數」,然後依序輸入相應對數的「答案 - 猜數」
例如,
2
1234 4321
5678 5721
表示有 2 對「答案 - 猜數」,第一題的答案是 1234 ,而相應的猜數是 4321 ,第二題的答案是 5678 ,而相應的猜數是 5721 。
輸出說明 :
針對每一組 「答案 - 猜數」,輸出相應的提示,並換行
例如,針對上述輸入,第一題的答案是 1234 ,而相應的猜數是 4321 ,故提示 0A4B ,第二題的答案是 5678 ,而相應的猜數是 5721 故提示 1A1B 。所以輸出如下 :
0A4B
1A1B
範例 :
問題描述 :
已知,猜數字是兩個人玩的遊戲,一方出題,另一方猜。出題的人要先想好一個「沒有重複數字」的 4 位整數,當作是答案,不能讓猜的人知道。猜的人就可以開始猜。每猜一次,出題者就要根據猜數給出「幾 A 幾 B 」,當作是提示,其中 A 前面的數字表示「數字猜中且位置也猜中」的個數,而 B 前的數字表示「數字猜中且位置沒猜中」的個數。例如,答案為 6234 而猜數 5246 ,則提示「 1A2B 」,因為 2 不但被猜中且位置也對了,記為 1A ,而 6 和 4 這兩個數字猜中且位置沒猜中,因此記為 2B ,合起來就是 1A2B 。
針對每一個題目,都只猜一次,然後程式就輸出該次猜數的提示。
輸入說明 :
程式首先要求輸入一個正整數,代表接下來有幾對「答案 - 猜數」,然後依序輸入相應對數的「答案 - 猜數」
例如,
2
1234 4321
5678 5721
表示有 2 對「答案 - 猜數」,第一題的答案是 1234 ,而相應的猜數是 4321 ,第二題的答案是 5678 ,而相應的猜數是 5721 。
輸出說明 :
針對每一組 「答案 - 猜數」,輸出相應的提示,並換行
例如,針對上述輸入,第一題的答案是 1234 ,而相應的猜數是 4321 ,故提示 0A4B ,第二題的答案是 5678 ,而相應的猜數是 5721 故提示 1A1B 。所以輸出如下 :
0A4B
1A1B
範例 :
輸入範例 | 輸出範例 |
2 1234 4321 5678 5721 | 0A4B 1A1B |
- #include <iostream>
- using namespace std;
- int guessA(int, int);
- int guessB(int, int);
- int main() {
- // [C_AR178-易] 猜數字之提示
- int N;
- cin >> N;
- for(int i = 0;i < N;i++)
- {
- int ans, gue;
- cin >> ans >> gue;
- cout << guessA(ans, gue) << "A" << guessB(ans, gue) << "B" << endl;
- }
- return 0;
- }
- int guessA(int a, int b){
- string A = to_string(a);
- string B = to_string(b);
- int Acount = 0;
- for(int i = 0;i < 4;i++)
- {
- if(A[i] == B[i])
- {
- Acount++;
- }
- }
- return Acount;
- }
- int guessB(int a, int b){
- string A = to_string(a);
- string B = to_string(b);
- int Bcount = 0;
- for(int i = 0;i < 4;i++)
- {
- for(int j = 0;j < 4;j++)
- {
- if(i != j && A[i] == B[j])
- {
- Bcount++;
- }
- }
- }
- return Bcount;
- }
沒有留言:
張貼留言