解题思路:
1.因为题中让我们输出11到n中的数位递增数,所以要用for循环
2.因为题中让我们输出11到n中数位递增数的个数,所以要用累加器累加个数
累加器公式:int m=0; m=m+i;
3.因为数位递增数是正整数任何一个数位小于等于右边相邻的数位,所以要把所有数位列出来
int g=i%10;//个位
int s=i%100/10;//十位
int b=i%1000/100;//百位
int q=i%10000/1000;//千位
int w=i/10000;//万位 (因为11<n<10001,所以最大到万位)
4.因为要判断是否为数位递增数,所以要用if判断
5.每当if判断到数位递增数,累加器就要加1
6.最后cout输出累加器
程序:
#include<iostream>
#include<bits/stdc++.h>
using namespace std;
int main(){
int n,m=0;
cin>>n;
for(int i=11;i<=n;i++){
int g=i%10;//个位
int s=i%100/10;//十位
int b=i%1000/100;//百位
int q=i%10000/1000;//千位
int w=i/10000;//万位
if(w<=q && q<=b && b<=s && s<=g) m+=1;
}
cout<<m;
return 0;
}