前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >1465: [蓝桥杯2019初赛]特别数的和

1465: [蓝桥杯2019初赛]特别数的和

作者头像
可爱见见
发布2020-02-26 12:24:26
1.4K0
发布2020-02-26 12:24:26
举报
文章被收录于专栏:卡尼慕

题目

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

思路

感觉好像之前做过类似的,判断一个数位中是否包括某数字,这个函数写过很多次了,循环取余判断即可,或者字符串判断字串(比较麻烦一点)。这里稍微复习一下string库,但是推荐使用循环取余。

使用string库中的find:

将int转换为string,再进行字符串字串的对比,这里需要注意返回值。

string中find()返回值是字母在母串中的位置(下标记录),如果没有找到,那么会返回一个特别的标记npos。(返回值可以看成是一个int型的数)。

往年也考过类似题目,传送门:1452: [蓝桥杯2019初赛]平方和

代码

代码语言:javascript
复制
//1465: [蓝桥杯2019初赛]特别数的和
#include <iostream>
using namespace std;
bool check(int num){
    int tmp = num;
    while(num){
        tmp = num % 10;
        if(tmp == 2 || tmp == 0 || tmp == 1 || tmp == 9)
            return true;
        num /= 10;
    }
    return false;
}
int main(){
    int sum;
    int num;
    cin>>num;
    for(int i = 1; i <= num; i++){
        if(check(i)){
            sum += i;
        }
    }
    cout<<sum;
    return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 卡尼慕 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档