用cpp写出完整代码
时间: 2024-10-28 22:09:23 浏览: 18
当然可以。下面是使用C++编写的函数,用于检查一个正整数是否是3或9的倍数:
```cpp
#include <iostream>
#include <string>
bool isMultipleOfThreeOrNine(int num) {
// 检查3的倍数
int sum = 0;
while (num > 0) {
sum += num % 10; // 取最后一位并加到总和
num /= 10; // 移除最后一位
}
if (sum % 3 == 0) {
return true; // 是3的倍数
}
// 如果不是3的倍数,再检查是否是9的倍数
sum = 0;
num = abs(sum - num); // 将负数转换为正数以便取模
if (num <= 9) { // 如果小于等于9,直接取余
sum += num;
} else {
num %= 100; // 取前两位的余数
sum += num / 10; // 加上十位
num %= 10; // 取个位
sum += num;
}
return sum % 9 == 0; // 判断是否是9的倍数
}
int main() {
int test_cases[] = {2, 33332, 123, -6789};
for (int n : test_cases) {
std::cout << (isMultipleOfThreeOrNine(n) ? "YES" : "NO") << '\n';
}
return 0;
}
```
这段代码首先检查数字是否能被3整除,然后如果不行就继续检查是否能被9整除。注意这里也处理了负数的情况,将它们转换为正数后再进行判断。
阅读全文