#include<iostream>
using namespace std;
int main(){
//声名变量n,用于存储输入的整数
int n;
while(cin >> n){
//提前定义变量result,用于存储计算的结果
int result = 0;
while(n != 0){
//获取当前最后一位
int a = (n % 10);
//将整数除以10,以便进行下一步操作
n = n / 10;
if(a % 2 == 0){
result +=a;
}
}
cout << result <<endl;
//每次循环后输出一个空行
cout << endl;
// std::cout << << std::endl;
}
}
总结:
1. 就是 a%2 == 0 和 a / 2 ==0的区别,一个是对余数进行的操作,一个是对除出来的值进行的操作。
这段代码中的两种不同的条件语句分别检查了整数 a
的不同特性,它们有不同的含义:
-
if(a % 2 == 0){ result += a; }
这条语句用于检查
a
是否是一个偶数。如果a % 2 == 0
为真,表示a
是偶数,那么result
加上a
的值。换句话说,这个条件用于把每一位偶数相加到result
中。a % 2
是取a
除以 2 的余数。- 如果余数为 0 (
a % 2 == 0
),说明a
是偶数。 - 如果
a
是偶数,则result
加上a
的值。
-
if(a / 2 == 0){ result += a; }
这条语句用于检查
a
是否小于 2。如果a / 2 == 0
为真,表示a
的值在整数除法中是 0,说明a
是 0 或 1。这种情况并不是检查a
是否是偶数,而是检查a
是否是小于 2 的值。a / 2
是a
除以 2 的整数部分。- 如果
a
小于 2(即a
为 0 或 1),那么a / 2
的结果是 0。 - 如果
a
是 0 或 1,则result
加上a
的值。
这两种条件的主要区别在于:
a % 2 == 0
检查a
是否是偶数。a / 2 == 0
检查a
是否小于 2(即a
是 0 或 1)。
在你的代码上下文中,使用 a % 2 == 0
是正确的选择,因为你希望将 n
的每一位偶数相加到 result
中。
2.如果想分解一个整数中并得到一个整数中的各个值
1. int a = a % 10 获得尾部的最后一个数
2. int a = a /10 获取去掉最后一位的整数