一、特别数的和
#include<iostream>
#include<string>
using namespace std;
int main() {
int n;
cin >> n;
int count = 0;
string str;
for (int i = 0; i <= n; i++) {
str = to_string(i);
for (char c : str) {//把str中的每个字符赋值给变量c
if (c == '0' || c == '1' || c == '2' || c == '9') {//检查字符c中是否包含0,1,2,9中的数字
count += i;
break;
}
}
}
cout << count << endl;
cin.get();
return 0;
}
这道题我简单的归结为,转换,遍历
-
int n; cin >> n;
:首先,从标准输入流中读取一个整数,存储在变量n
中。这个整数表示我们要计算的范围的上限。 -
int count = 0;
:定义一个变量count
,用于存储满足条件的整数的总和。初始值为 0。 -
string str;
:定义一个字符串变量str
,用于存储将要检查的每个整数的字符串表示。 -
for (int i = 0; i <= n; i++) { ... }
:外部循环从 0 开始,逐个增加到n
。这个循环控制着要检查的整数范围。 -
str = to_string(i);
:将当前循环变量i
转换为字符串,并将结果存储在字符串变量str
中。这样就可以遍历该整数的每个数字。 -
for (char c : str) { ... }
:内部循环遍历字符串str
中的每个字符,并将当前字符赋值给变量c
。 -
if (c == '0' || c == '1' || c == '2' || c == '9') { ... }
:内部循环中的条件语句,检查当前字符c
是否是 ‘0’、‘1’、‘2’ 或 ‘9’ 中的一个。如果是,则执行条件语句块内的代码。 -
count += i;
:如果内部循环发现当前整数i
中包含数字 0、1、2 或 9,将当前整数i
的值加到count
变量中,以便计算总和。 -
break;
:当内部循环发现符合条件的数字后,使用break
语句来跳出内部循环,因为我们只需要找到一个符合条件的数字即可。 -
cout << count << endl;
:最后,输出变量count
的值,即包含数字 0、1、2 或 9 的整数的总和。
这样,该程序就完成了计算包含数字 0、1、2 或 9 的整数的总和的任务。