多重循环~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 注意在内循环中不可以再用外循环的变量进行计算判断:内循环会改变外循环变量的值,而外循环又没有赋值语句
所以应该重新定义一个变量来存放每次取得的外循环变量的值