#include /* 一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数, 例如1135是一个数位递增的数,而1024不是一个数位递增的数。 给定正整数 n,请问在整数 11 至 n 中有多少个数位递增的数? */ using namespace std; int n, cnt; bool iSDiZeng(int t) { //哨兵 int x = 10; //这里定义x为10,是为了便于将个位数的大小与t作比较, //个位数永远小于10 while (t) { if (t % 10 > x) return false; x = t % 10; // x一直在更新 t /= 10; // n分解出一个数便舍去一个数 } return true; } int main() { cin >> n; for (int i = 11; i <= n; i++) if (iSDiZeng(i)) cnt++; cout << cnt << endl; return 0; }