首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >228 a码迫使错误的答案码19

228 a码迫使错误的答案码19
EN

Stack Overflow用户
提问于 2021-08-26 07:47:23
回答 2查看 588关注 0票数 0

这是代码强制的一个问题:

马匹

瓦莱拉要和朋友们一起去参加聚会。他跟随时尚潮流已经有一段时间了,他知道穿各种颜色的马蹄铁很受欢迎。瓦莱拉去年还剩下四只马蹄铁,但可能有些马蹄铁的颜色与去年的马蹄铁相同。在这种情况下,他需要去商店买几个马蹄铁,而不是在他时尚的同志面前丢脸。

幸运的是,这家商店在阳光下出售各种颜色的马蹄铁,瓦莱拉有足够的钱购买其中的任何四种。然而,为了节省开支,他想花尽可能少的钱,所以你需要帮助瓦莱拉,并确定他需要购买的马蹄铁的最低数量,以穿四种不同颜色的马蹄铁参加聚会。输入

第一行包含四个空格分隔的整数s1、 s2、 s3、 s4 (1 ≤ s1、 s2、 s3、 s4 ≤ 109) --马蹄铁的颜色。

考虑用整数索引的所有可能的颜色。输出

打印一个整数--瓦莱拉需要购买的马蹄铁的最小数量。

示例

代码语言:javascript
复制
Input 1 7 3 3 
Output 1
Input 7 7 7 7
Output 3

我的解决方案的输出是正确的,但是在测试19上有错误的答案。我的解决方案是:

代码语言:javascript
复制
#include <iostream>

using namespace std;
int main()
{
    //input
    int input[4];
    int i, j, count = 0;

    for (i = 0; i < 4; i++) {
        cin >> input[i];
      
    }
    for (i = 0; i < 4; i++) {
        for (j = i+1; j < 4; j++) {
           if (count == 3)break;
            if (input[i] == input[j]) {
                count += 1;
            }
       }
    }
    cout << count;
    return 0;
}

试验案例19是:

代码语言:javascript
复制
Input
147784432 947653080 947653080 947653080
Participant's output
3
Jury's answer
2
Checker comment
wrong answer 1st numbers differ - expected: '2', found: '3'
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-08-26 09:28:57

只需稍微修改一下代码,就可以计算不同数字的数量和输出4 - count

代码语言:javascript
复制
#include <iostream>
 
using namespace std;
int main()
{
    //input
    int input[4];
    int i, j, count = 1;
 
    for (i = 0; i < 4; i++) {
        cin >> input[i];
      
    }
    for (i = 1; i < 4; i++) {
        for (j = 0; j < i; j++) {
            if(input[i] == input[j]) break;
       }
       if(i == j) count++;
    }
    cout << (4-count);
    return 0;
}

在强制码中接受。

票数 0
EN

Stack Overflow用户

发布于 2021-08-26 08:03:46

代码的一个稍微优化的版本:

代码语言:javascript
复制
#include <iostream>

using namespace std;
int main()
{
    //input
    int input[4];
    int i, j, count = 0;
    bool done = false;

    for (i = 0; i < 4; i++) {
        cin >> input[i];
      
    }
    for (i = 0; (i < 3) && (!done); i++) {
        for (j = i+1; (j < 4) && (!done); j++) {
            if (input[i] == input[j]) {
                count += 1;
                done = count == 3;
            }
       }
    }
    cout << count;
    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68934560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档