单调递增数

问题描述
一个正整数如果任何一个数位不大于右边相邻的数位,则称为个数位递增的数,例如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;
} 
发布了17 篇原创文章 · 获赞 1 · 访问量 354

猜你喜欢

转载自blog.csdn.net/weixin_46396354/article/details/104783907
今日推荐