完美偶数判断:C/C++编程实现
完美偶数判断:C/C++编程实现
问题描述:
完美偶数指的是,如果一个数本身是偶数,且这个数是偶数位的数,且这个数的各个位也是偶数,那么这个数就可以称为完美偶数;比如:28就是完美偶数,而246就不是,因为246是一个3位数。
请你编程求出,从键盘读入的n个数中,哪些数是完美的偶数,输出他们。
输入描述:
第一行是一个整数n(n<=100) 第二行是n个整数(这些整数都是1~9999范围内的整数)
输出描述:
按顺序输出这n个数中的完美偶数,每个数一行
用例输入:
5
26 4286 228 32 1280
用例输出:
26
4286
代码实现:
#include <iostream>
using namespace std;
bool isPerfectEven(int num) {
if (num % 2 != 0) {
return false; // 不是偶数
}
int digits = 0;
int temp = num;
while (temp > 0) {
digits++;
temp /= 10;
}
if (digits % 2 != 0) {
return false; // 不是偶数位数
}
temp = num;
while (temp > 0) {
if ((temp % 10) % 2 != 0) {
return false; // 个位不是偶数
}
temp /= 10;
}
return true; // 满足所有条件,是完美偶数
}
int main() {
int n;
cin >> n;
int num;
for (int i = 0; i < n; i++) {
cin >> num;
if (isPerfectEven(num)) {
cout << num << endl;
}
}
return 0;
}
代码说明:
isPerfectEven(int num)函数用于判断一个数是否为完美偶数。- 函数首先判断输入的数是否为偶数,如果不是,则直接返回
false。 - 然后通过循环计算数字的位数,并判断位数是否为偶数,如果不是,则返回
false。 - 最后,通过循环判断每个位是否都是偶数,如果不是,则返回
false。 - 如果所有条件都满足,则返回
true,表示该数是完美偶数。 main函数中,首先读取输入的数字个数n,然后循环读取每个数字,并调用isPerfectEven函数判断是否为完美偶数,如果是,则输出该数字。
优化建议:
- 优化代码逻辑,例如可以将判断偶数、判断偶数位数、判断个位是否偶数的逻辑整合到一个循环中,提高代码效率。
- 添加注释,解释代码逻辑,方便他人理解。
- 考虑使用更简洁的代码风格,例如使用
for循环代替while循环等。 - 可以增加一些测试用例,确保代码逻辑正确。
- 考虑使用更强大的数据结构和算法,例如使用数组或链表存储输入的数字,提高代码效率。
希望以上内容对你有所帮助!如果你还有其他问题,请随时提出。
原文地址: https://www.cveoy.top/t/topic/qlay 著作权归作者所有。请勿转载和采集!