2 solutions

  • 1
    @ 2024-7-20 19:31:24

    题意

    将[L,R]中的所有数拼接,统计里面有多少个数字2。

    思路

    直接用count函数统计一个数中有多少个2,然后累加。

    代码

    #include<iostream>
    using namespace std;
    int main(){
    	void input(int&,int&);//输入 
    	void print(int);//输出 
    	int solution(int,int);//计算 
    	int L(0);
    	int R(0);
    	input(L,R);//输入条件 
    	print(solution(L,R));//输出结果 
    	return 0;
    }
    void input(int&p1,int&p2){//两个输入口 
    	cin>>p1>>p2;
    }
    void print(int num){//需要输出的东西 
    	cout<<num;
    }
    int solution(int a,int n){//[a,n]中查找 
    	int count(int);//计算一个数中有多少个2 
    	int ret(0);
    	for(int i(a);i<=n;i++)//闭区间 
    		ret+=count(i);//直接累加 
    	return ret;
    }
    int count(int x){//被统计的数 
    	int ret(0);
    	while(x){
    		if(x%10==2)//按位判断 
    			ret++;
    		x/=10;//往上判断 
    	} 
    	return ret;
    }
    
    • 0
      @ 2024-7-18 20:25:22
      #include<bits/stdc++.h>
      using namespace std;
      int main(){
          int l,r,ans=0;
          cin>>l>>r;
          for(int i=l;i<=r;i++){
              int t=i;
              while(t!=0){//一位一位去分析
                  if(t%10==2) ans++;//见到2就加
                  t/=10;//去掉个位
              }
          }
          cout<<ans;
          return 0;
      }
      
      • 1

      Information

      ID
      179
      Time
      1000ms
      Memory
      125MiB
      Difficulty
      1
      Tags
      # Submissions
      38
      Accepted
      27
      Uploaded By