问题描述
一个正整数如果任何一个数位不大于右边相邻的数位,则称为个数位递增的数,例如1135是一个数位递增的数,而1024不是一数位递增的数。
输入格式
输入的第一行包含一个整数n。
输出格式
输出一行包含一个整数,表示答案。
样例输入
30
样例输出
26
代码
#include<bits/stdc++.h>
using namespace std;
int main(){
long long n,a,max,sum,b;
while(~scanf("%d",&n)){//输入结束数值
sum=0;//求个数
for(int i=1;i<=n;i++){
if(i%10==0)//优化,是10的倍数的是一定不满足条件的,退出本次循环
continue;
a=i;
while(a>0){
max=a%10;
a=a/10;
if(max>=a%10){
max=a%10;
a/=10;
if(a==0){
sum++;
break;
}
}else{
break;
}
}
}
printf("%d\n",sum);//输出满足条件的个数
}
return 0;
}