#include<iostream> #include<stdio.h> #include<stdlib.h> #include<math.h> #include<string.h> #include<algorithm> #include<map> #include<vector> #include<queue> using namespace std; //找到1~n的all数里含1的1的个数,对逐位分三种情况 //代码虽短,但要举例静心找规律 int main(){ int n,a=1,ans=0; int left,now,right; scanf("%d",&n); while(n/a != 0){ left=n/(a*10); now=n/a%10; right=n%a; if(now == 0) ans +=left*a; else if(now==1) ans += left*a+right+1; else ans += (left+1)*a; a*=10; } printf("%d\n",ans); system("pause"); return 0; }