特别数的和(蓝桥杯)

1245. 特别数的和

 

小明对数位中含有 2、0、1、92、0、1、9 的数字很感兴趣(不包括前导 00),在 11 到 4040 中这样的数包括 1、2、9、101、2、9、10 至 32、3932、39 和 4040,共 2828 个,他们的和是 574574。

请问,在 11 到 nn 中,所有这样的数的和是多少?

输入格式

共一行,包含一个整数 nn。

输出格式

共一行,包含一个整数,表示满足条件的数的和。

数据范围

1≤n≤10000

代码:
#include<iostream>
using namespace std;
int main(){
    int n;
    cin>>n;
    int res=0;
    for(int i=1;i<=n;i++){
        int x=i;
        while(x){
            int t=x%10;//取出个位
            x/=10;//删掉个位
            if(t==2||t==0||t==1||t==9){
                res+=i;
                break;//终止while循环,防止含有多个特别数的值被重复相加
            }
        }
    }
    cout<<res<<endl;
    return 0;
}

 

上一篇:Schur complement for inverting block matrices


下一篇:基于注意力机制优化的生成式文档摘要模型