用C语言编写的,这样直接遍历非常简单,不过对于节省时间和内存资源来说是非常粗糙的!
不过做事情先粗后精,快速迭代才是正路,不要想一开始就非常完美!
代码如下:
#include<stdio.h>
int main(){
int n,m;
int cnt=0,set=0,sum=0;
scanf("%d",&n);
for(int i=1;i<=n;i++){
int j=i;
int k=i%10;
while(j!=0){
j=j/10;
if(j==1||k==1){
set=1;
sum++;
}else{
k=j%10;
continue;
}
}
if(set){
cnt+=sum;
sum=0;
}
set=0;
}
printf("%d",cnt);
return 0;
}
运行后与案例输出一致。