问题描述
一个正整数如果任何一个数位不大于右边相邻的数位,则称为一个数位递增的数,
例如1135是一个数位递增的数,而1024不是一个数位递增的数。
给定正整数 n,请问在整数 1 至 n 中有多少个数位递增的数?
输入格式
输入的第一行包含一个整数 n。
输出格式
输出一行包含一个整数,表示答案。
#include<stdio.h>
int main()
{
unsigned long long int i,t;
unsigned long long int sum=0;
unsigned long long int acc;
scanf("%lld",&i);
if(i<10)sum=i;
else{
for(t=10;t<=i;t++)
{
for(acc=1;acc<=t;acc=acc*10);
acc=acc/10;
while(1)
{
if( ((t/acc)%10)> ((t/(acc/10))%10) )break;
else if(acc!=10) acc=acc/10;
else
{
sum++;break;
}
}
}
sum+=9;
}
printf("%lld\n",sum);
return 0;
}