✏️ 纠错
第 240 题 / 共 301 题
第14题 判断一个数是否为自守数。自守数的定义是如果一个数的平方其尾数与该数相同,则为自守数,如25的平方是625,其尾数是25,所以25是自守数。相关说法错误的是()。
int N, N1, M1;
cout << "输入一个正整数:";
cin >> N;
N1 = N, M1 = N * N;

bool Flag = true;

while (N1 > 0){
    if (N1 % 10 != M1 % 10){
      Flag = false;
      break;
    }
    else{
      N1 = N1 / 10, M1 = M1 / 10;
    }
}
if (Flag == true)
    printf("%d的平方是%d,是自守数", N, N * N);
else
    printf("%d的平方是%d,不是自守数", N, N * N);
📝 题目解析

【参考答案】D

【答案解析】N是原始输入值,在循环中未改变。N1是一个副本,在循环中不断被修改,直至变为0。如果条件改为N>0,循环会变成无限循环