多重循环~2出现的次数

题目描述:

输入

输入共1 行,为两个正整数L 和R,之间用一个空格隔开。


输出

输出共1 行,表示数字2 出现的次数

 1 #include<stdio.h>
 2 int main(){
 3     int m,n;
 4     scanf("%d %d",&m,&n);
 5     int cnt=0;                  //计算2出现的次数
 6     int j;                  
 7     for(int i=m;i<=n;i++) {     //外循环,从m到n对数字进行检查
 8         j=i;
 9         while(j!=0){            //内循环,一位一位从低位看,取余=2则跳出循环,cnt+1
10         if(j%10==2){
11             //printf("%d\n",j);
12             cnt++;
13             
14         }
15         j=j/10;
16        // printf("%d\n",m);
17         }
18     }
19     printf("%d",cnt);
20     return 0;
21 }

solution:

1 每一个2的出现都计算一次:22中2出现了两次,所以不用加break语句

2 注意在内循环中不可以再用外循环的变量进行计算判断:内循环会改变外循环变量的值,而外循环又没有赋值语句

  所以应该重新定义一个变量来存放每次取得的外循环变量的值

posted on 2022-10-24 18:06  罗小罗佳油  阅读(219)  评论(0编辑  收藏  举报