28 lines
836 B
C++
28 lines
836 B
C++
#include <bits/stdc++.h>
|
||
/*
|
||
一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,
|
||
例如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;
|
||
} |