一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,例如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; }