[蓝桥杯][2019年第十届真题]特别数的和

题目描述

小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。

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

输入

输入一行包含两个整数 n。

输出

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

样例输入

40

样例输出

574

提示

对于 20% 的评测用例,1 ≤ n ≤ 10。 

对于 50% 的评测用例,1 ≤ n ≤ 100。 

对于 80% 的评测用例,1 ≤ n ≤ 1000。 

对于所有评测用例,1 ≤ n ≤ 10000。


#include<iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    int res = 0;
    for (int i = 0; i <=n; i++) {
        int x = i;
        while (x) {
            int t = x % 10;
            if (t == 0 || t == 1 || t == 2 || t == 9) {
                res += i;
                break;
            }
            x /= 10;
        }
    }
    cout << res;
    return 0;
}

 

#include<iostream>

usingnamespace std;

 

int main()

{

    int n;

    cin >> n;

    int res = 0;

    for (int i = 0; i <=n; i++) {

        int x = i;

        while (x) {

            int t = x % 10;

            if (t == 0 || t == 1 || t == 2 || t == 9) {

                res += i;

                break;

            }

            x /= 10;

        }

    }

    cout << res;

    return 0;

}

 

posted @ 2020-03-25 02:39  champanesupernova  阅读(549)  评论(0编辑  收藏  举报