lanqiaobei10
[每周例题1]蓝桥杯c++ 191.特别数的和
题目描述
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),
在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到n 中,所有这样的数的和是多少?
#include <iostream>
using namespace std;
int main()
{
// 请在此输入您的代码
int num = 0;
int n;
cin >> n;
for (int i = 1; i <= n; i++)
{
int temp = i;
while (temp)
{
int ge;
ge = temp % 10;
//循环判断每一位中的2,0,1,9
if (ge == 0 || ge == 1 || ge == 2 || ge == 9)
{
//每有一个将他们加到num中
num = num + i;
break;
}
temp /= 10;
}
}
cout << num << endl;
return 0;
}
思路:
直接拿n进行循环,每拿到一次n对其进行拆解,拿到它的每一位,判断是否是2,0,1,9的其中一位,定义一个变量将出现2,0,1,9的那个数进行相加最后输出该变量即可

浙公网安备 33010602011771号