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的那个数进行相加最后输出该变量即可

posted @ 2023-04-09 22:16  风起鹤归  阅读(42)  评论(0)    收藏  举报