'commit'
This commit is contained in:
28
TangDou/KaoShi/数位递增数.cpp
Normal file
28
TangDou/KaoShi/数位递增数.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
#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;
|
||||
}
|
||||
Reference in New Issue
Block a user