题解 | #送分了QAQ#

送分了QAQ

https://ac.nowcoder.com/acm/problem/15035

思路

看到楼上有dp做法的,原谅我难以看懂,我是直接暴力过的。
前缀和可以O(1)得到答案,只需要进行预处理求1~1e6讨厌的数个数就好了。O(1e6)
判断一个数是否讨厌,可以对其每一位模4,每两位模38.

代码

#include<bits/stdc++.h>
using namespace std;

int n,m,sum[1000005];

bool check(int x){
    while(x){
        if(x%10==4||x%100==38) return true;
        x/=10;
    }
    return false;
}

int main(){
    sum[0]=0;
    for(int i=1;i<=1000000;i++){
        sum[i]=sum[i-1]+check(i);
    }
    scanf("%d%d",&n,&m);
    while(n!=0||m!=0){
        cout<<sum[m]-sum[n-1]<<endl;
        scanf("%d%d",&n,&m);
    }
    return 0;
}
全部评论

相关推荐

点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
05-01 13:13
ecece:这么明目张胆虚报就业率啊
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
11
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务