问题标题: 酷町堂:请问4909怎么改

0
0
已解决
朱子尘
朱子尘
初级光能
初级光能

题目:

题目描述 Description

在巫师的王国中,有很多的魔法,不同魔法的实现是需要借助对应的咒语,而让我们普通人意想不到的是,咒语实际上就是一个数字!每一个咒语都一定是一个5位数。但是并不是每一个5位数都是咒语,已知巫师世界有n条咒语(1<=n<=1000),我们需要输入一个五位数,判断他是否是咒语,如果这个5位数是咒语,则输出"yes";如果这个5位数不是咒语,则输出"no"。

输入描述 Input Description

输出三行:
第一行一个整数n,表示巫师世界有n条咒语
第二行n个5位数,表示这具体的个咒语
第三行一个5位数,我们需要判断这个5位数是否是咒语

输出描述 Output Description

如果这个5位数是咒语,则输出"yes";如果这个5位数不是咒语,则输出"no"。

样例输入 Sample Input

5 32432 56457 42343 85966 99939 42343

样例输出 Sample Output

yes

本人的50分代码:

#include<iostream>
using namespace std;
int a[100010];
int main()
{
    int n,t,k;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>t;
        a[t]++;
    }
    cin>>k;
    for(int i=1;i<=99999;i++)
    {
        if(i==k)
        {
            cout<<"yes";
            break;
        }
    }
    cout<<"no";
    return 0;
}

请问怎么改(已知道大错误,一些小错误应该有吧)


0
已采纳
包涵宇
包涵宇
中级天翼
中级天翼

朱子尘

你好

你的代码有较大的错误,我慢慢讲。。。

首先,你的循环可以优化,但没有多大影响,我就不讲了

然后就是你的判断了,应该为:

if(i==k&&a[i])
        {
            cout<<"yes";
            return 0;
        }

即可AC!

0
潘晨皓
潘晨皓
高级天翼
高级天翼

帮你看了测试一(你错了,是0分)

他是这么说的

测试点#1 (只能看一眼哦~)

输入(显示前50行):

 

962 58210 27200 68707 17492 43649 20052 45613 21111 28168 95643 69313 14360 96820 73340 97200 56761 57011 53408 78118 52150 28028 37681 95052 55525 53031 12304 48374 82127 44236 55127 83624 46002 40823 92694 99480 55962 57610 41535 89317 95448 39577 48315 79782 87434 10283 89477 83245 70606 77415 ......

输出(显示前50行):

 

no

 

自己看看吧!

望采纳!

(我的三十酷町币呀)

0
陈曦
陈曦
资深天翼
资深天翼

你的'no'为什么写在循环外面?

这样即会输出 'yes' 也会输出 'no'。

你把 break 换成 return 0。

 

陈曦在2020-03-24 08:40:59追加了内容

前面没错,我运行了一下,

把 break 换成return 0 应该就好了。

我要回答