蓝桥杯练习 算法训练 1的个数

算法训练 1的个数

问题描述
  输入正整数n,判断从1到n之中,数字1一共要出现几次。例如1123这个数,则出现了两次1。例如15,那么从1到15之中,一共出现了8个1。
输入格式
  一个正整数n
输出格式
  一个整数,表示1出现的资料
样例输入
15
样例输出
8
数据规模和约定
  n不超过30000

代码如下:

#include<stdio.h>
int main(){
int a,b,c,d,e,n,f=0,i;
scanf("%d",&n);
for(i=1;i<=n;i++){
a=i/10000;
b=(i-a*10000)/1000;
c=(i-a*10000-b*1000)/100;
d=(i-a*10000-b*1000-c*100)/10;
e=i-a*10000-b*1000-c*100-d*10;
if(a==1){
f++;
}
if(b==1){
f++;
}
if(c==1){
f++;
}
if(d==1){
f++;
}
if(e==1){
f++;
}
}
printf("%d",f);
return 0;
}

程序运行结果如下:

在这里插入图片描述

发布了26 篇原创文章 · 获赞 25 · 访问量 678

猜你喜欢

转载自blog.csdn.net/weixin_45269353/article/details/104089564