第19653题 单选
下列关于判断N是否为M的完整漂亮数的C++代码的说法,正确的是

漂亮数的定义是:如果N能被M整除,或者某位是M,或者N的每位数之和能被M整除,则说N是M的漂亮数。如果三个条件都满足,则是完整漂亮数。123是3的完整漂亮数,因为123能被3整除,也含有3,其每位数之和为6也能被3整除。 下面给出判断N是否为M的完整漂亮数的C++代码:

int N, M, Flag, Sum, num;
cout << "请输入N,不等于0的正整数: ";
cin >> N;
cout << "请输入M: M必须大于1小于9: ";
cin >> M;

Sum = 0; // 记录各位数之和
Flag = 0; // 假设记录N不含有M

while (N != 0){
    num = N % 10;
    Sum += num;
    if (num == M)
        Flag = 1;
    N /= 10;
}

if ((N % M == 0) && (Flag == 1) && (Sum % M == 0)) // L1
    printf("%d 是 %d 的完整漂亮数", N, M);
else
    printf("%d 不是 %d 的完整漂亮数", N, M);
A

代码能完成题目设定目标。

B

在 while 循环中N最终将变成0,因此L1行代码中 N % M 将总是满足条件,可以在 while 前增加一行代码 int old_num = N; ,并将L1开始这4行代码中的 N 都改为 old_num 就可以做出正确的判定。

C

while 循环中 if 判断语句可以增加 else 子句,其内容为 Flag = 0 。

D

如果先后输入 0 和 3 ,则肯定会输出 0是3的完整漂亮数 。

程序运行统计
暂无判题统计