题目
【问题描述】
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0) ,在 1 到
40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到 n 中,所有这样的数的和是多少?
【输入格式】
输入一行包含两个整数 n。
【输出格式】
输出一行,包含一个整数,表示满足条件的数的和。
输入
40
输出
574
思路
循环遍历,看每个数的位数是不是符合条件的,符合则遍历的 i 加在 sum里面
代码
#include <iostream>
using namespace std;
int main()
{
int n;
int sum = 0;
cin>>n;
for(int i = 1;i <= n;i++){
int num = i;
while(num){
int digit = num%10;
if(digit == 2||digit == 0||digit == 1||digit == 9){
sum += i;
break;
}
num = num/10;
}
}
cout<<sum;
return 0;
}
标签:10,特别,int,sum,digit,40,num
From: https://blog.csdn.net/2302_79279009/article/details/136763511