2 条题解

  • 1
    @ 2024-10-8 19:49:40

    HJ1011 数字统计传送门

    题意

    ll~rr之间所有整数中包含的22的个数。


    微剧场~
    x:就这点儿?
    y:yes.
    x:Talk is cheap,show me the code.
    y:……
    

    思路(勿喷)

    第一步:数字各个位数拆分


    while(s > 1){//只要这个数没被除尽,就一直除。
        if(s%10 == 2) ans++;//如果当前位为2,答案加1。
        s /= 10;//删除当前位,进行下一位运算。
    }
    

    第二步:枚举ll~rr之间的所有数。


    for(int i = l; i <= r; i++){
        //中间省略。
    }
    

    第三步:组合代码


    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int ans = 0;
        int l, r; cin >> l >> r;
        for(int i = l; i <= r; i++){
            while(i > 1){//只要这个数没被除尽,就一直除。
                if(i%10 == 2) ans++;//如果当前位为2,答案加1。
                i /= 10;//删除当前位,进行下一位运算。
            }
        }
        cout << ans;
        return 0;
    }
    

    不过,如果你看到这里就划(复制代码)走了,那么……


    微剧场~
    x:你还要脸吗?!我用了你的代码怎么TLE了!!!(怒
    y:谁让你用我代码的?(笑
    x:……
    

    正解(请勿复制,虽然我知道这句话没用……)


    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        int ans = 0;
        int l, r; cin >> l >> r;
        for(int i = l; i <= r; i++){   
            int s = i;
            while(s > 1){//只要这个数没被除尽,就一直除。
                if(s%10 == 2) ans++;//如果当前位为2,答案加1。
                s /= 10;//删除当前位,进行下一位运算。
            }
        }
        cout << ans;
        return 0;
    }
    

    找不同: 多定义了一个ss,为什么呢? 答: 因为ii是每次循环要用到的,如果将ii写在whilewhile循环里,则ii每次都会被还原到11,于是,ii永远也无法达到rr,所以,我们需要另外定一个变量进行拆分。


    都看到这里了,点个赞吧

    • -1
      @ 2024-6-8 16:48:14
      #include<iostream>
      using namespace std;
      int main(){
          int l,r;
          cin>>l>>r;
          int cnt=0;
          for(int i=l;i<=r;i++){
              int tmp=i;
              while(tmp!=0){
      	        if(tmp%10==2){
      		        cnt++;
      	        }
      	        tmp/=10;
      	    }
          }
          cout<<cnt;
      }
      
      
      • 1

      信息

      ID
      741
      时间
      1000ms
      内存
      256MiB
      难度
      7
      标签
      (无)
      递交数
      259
      已通过
      58
      上传者