$题解 AT1766 【暗証番号】$

$ AT1766~\text{暗証番号}$
前言:

一道灰题(暂无评定)(题面上给的),但我觉的这是一道十分简单的红题(入门),估计刚学\(OI\)的小伙伴都会。好了,废话不多扯了,看题吧。


题目翻译已经给出来了,我就不多啰嗦了,因为\(n\)为四位数,完全可以使用int来做,但我因为方\((tou)\)便\((lan)\),就使用string做了。


接下来说一下本题的基本算法框架。
因为在本题解中,数的储存方式是string,所以,会变的十分简单。
只要一个for循环,从字符串的第二位开始枚举,到字符串的最后一位结束。
将当前枚举到的那个上的数与上一位的那个数进行对比,如果发现不一样,那就不符合题目要求,则cout<<"DIFFERENT"<<endl;return 0;
如果循环完了还没有发现不一样的,那输入的那个数肯定符合要求,则cout<<"SAME"<<endl;
好了,本题基本算法的框架就完工了,如果还没明白的请看代码进一步进行理解。


#include<bits/stdc++.h>  //万能头
using namespace std;
int main()
{
    string s;  //定义字符串
    cin>>s;    //将字符串输入
    for(int i=1;i<s.size();i++) //开始枚举
    if(s[i]!=s[i-1])  //如果发现当前位的数和上一位数不一样
    {
        cout<<"DIFFERENT"<<endl;  //输出
        return 0;                 //直接结束程序
    }
    cout<<"SAME"<<endl;   //每一位数都相同
    return 0;      //结束程序
}

猜你喜欢

转载自www.cnblogs.com/Luke-Skywalker/p/11405473.html