这段代码的作用是判断一个整数的各位数字是否从左到右严格递减。它从右向左检查相邻两位数字,如果发现某一位大于它左边的一位,就认为不是递减序列。 - 你的循环从最低位开始比较,但题目要求的是从左到右的递减顺序。你比较的是 last(当前最低位)和 pre(次低位),这实际上是反向比较。例如数字 321,你比较的是 1 和 2,发现 1 不大于 2,所以不会触发 flag,但实际从左到右是递减的,应该输出 YES。你的逻辑正好反了。 - 另外,当数字只有一位时,你的循环不会执行,flag 保持 0,输出 NO,但一位数字通常被认为是满足条件的。你需要考虑这种情况。