【蓝桥杯题解】顺子日期(很坑)

小明特别喜欢顺子。顺子指的就是连续的三个数字:123、456 等。顺子日期指的就是在日期的 yyyymmdd 表示法中,存在任意连续的三位数是一个顺子的日期。例如 20220123 就是一个顺子日期,因为它出现了一个顺子:123; 而 20221023 则不是一个顺子日期,它一个顺子也没有。小明想知道在整个 2022 年份中,一共有多少个顺子日期?

for循环里面的if条件不能分开写,因为会存在两个条件都满足的情况,这样就会多增加一次,导致答案

#include
#include
#include

using namespace std;

typedef long long LL;

const int N = 200010;

int days[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

bool value(int month,int day){
    if(month<1||month>12) return false;
    if(day==0) return false;
    if(day>days[month]) return false;
    return true;
}

int main(){
    int ans=0;
    
    for(int i=0101;i<=1231;i++){
        
        int b=i/100;
        int c=i%100;
        
        int d=i/1000%10;
        int e=i/100%10;
        int f=i/10%10;
        int g=i%10;
        
        if(value(b,c)&&((e==d+1&&f==e+1)||(f==e+1&&g==f+1))){
            //cout<

你可能感兴趣的:(蓝桥杯,职场和发展,c++,算法)