Online Compiler C

#include<stdio.h> int main(void) { int n; scanf("%d",&n); while(n>=10) {if(n%10==n/10%10) { printf("YES"); return 0; } n=n/10;} printf("NO"); return 0; }
这段代码的功能是判断一个整数中是否存在相邻的两位数字相等。它从右向左依次比较相邻的数字对,如果找到一对相等的数字就输出YES并结束,否则输出NO。

- 代码中 `n%10` 获取当前最后一位数字,`n/10%10` 获取倒数第二位数字,但循环条件是 `n>=10`,当 n 变成一位数时循环结束。这里有一个边界情况:当 n 本身是一位数时,循环不会执行,直接输出 NO,这是合理的。

- 注意循环中每次比较的是当前 n 的最后两位,但 n 在每次循环末尾被除以10,所以比较的是相邻的数字对。不过,如果数字中有连续三位相同,比如 111,第一次比较 1 和 1 就会输出 YES,这是正确的。