蓝桥杯--数位递增的数

一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,例如1135是一个数位递增的数,而1024不是一个数位递增的数。给定正整数 n,请问在整数 1 至 n 中有多少个数位递增的数?

#include<bits/stdc++.h>
using namespace std;

bool func(int n) {
    
    int t=10;//这里定义t为10,是为了便于将个位数的大小与t作比较,个位数永远小于10 
    
    while (n) {
        
    if (n%10 > t)return false;
        t=n%10;//t一直在更新 
        n/=10;//n分解出一个数便舍去一个数 
        
    }
    return true;
}
int main() {
    int n, count = 0;
    cin >> n;
    for (int i = 1; i <= n; ++i) {
        if (func(i))
            count++;
    }
    cout << count << endl;
    return 0;
}

 

posted @ 2020-10-11 23:18  zhou小月  阅读(926)  评论(0编辑  收藏  举报