这段代码的功能是判断一个整数中是否存在相邻的两位数字相等。它从个位开始,依次比较相邻的两位数字,如果找到相等就输出YES并结束,否则循环结束后输出NO。 你的代码逻辑基本正确,但有一个边界情况可能没有考虑。 - 当输入的数字只有一位数时,比如输入5,while循环条件n>9不成立,直接输出NO。但一位数没有相邻两位,输出NO是合理的。 - 你的循环每次比较当前最低两位,然后去掉最低位。但注意,当n变成个位数时循环结束,此时最后一位数字没有被比较过,这没有问题,因为已经比较了所有相邻对。 不过,你的代码在判断时只检查了digit1和digit2是否相等,但循环中n=n/10会改变n的值,导致后续比较的位数正确。整体思路是对的。 - 提示:考虑一下输入为0的情况。0只有一位,你的代码会输出NO,但0本身是否应该被视为有相邻相等数字?这取决于题目要求,但通常一位数没有相邻对,所以NO是合理的。如果题目要求0也输出YES,你需要单独处理。 - 提示:你的代码中变量i被定义了但从未使用,可以删除它让代码更简洁。