40分求助!!

P1179 [NOIP2010 普及组] 数字统计

@[IKUNNN](/user/952739) 数字长度不是一定的
by that_summer @ 2023-07-20 20:07:59


你可以看看数据范围1≤L≤R≤100000 ```c if(i%10==2) { r++; } if(i/10%10==2) { r++; } if(i/100%10==2) { r++; } ``` 这最多能求个十百位的数吧
by YC_George @ 2023-07-20 20:12:40


@[IKUNNN](/user/952739) 得把区间 $[l,r]$ 中的每一个数的每一位都枚举出来,再统计个数。 代码如下: ```cpp #include<bits/stdc++.h> using namespace std; int f(int x){ int sum=0; while(x){ if(x%10==2){ sum++; } x/=10; } return sum; } int main(){ int l,r,ans=0; cin>>l>>r; for(int i=l;i<=r;i++){ ans+=f(i); } cout<<ans; return 0; } ``` 求关注
by that_summer @ 2023-07-20 20:13:12


```c while(q){ int t = q%10; q/=10; if(t==2)p++; } ``` 每一个数都这样就行啦
by YC_Aldrich @ 2023-07-20 20:13:48


@[that_summer](/user/830170) 谢谢几位大佬的指点,关注了!!
by RTF_Sonetto @ 2023-07-21 08:30:35


@[YC_Aldrich](/user/995025) 谢谢几位大佬的指点,关注了!!
by RTF_Sonetto @ 2023-07-21 08:30:55


@[YC_George](/user/1004860) 谢谢几位大佬的指点,关注了!!
by RTF_Sonetto @ 2023-07-21 08:31:12


```cpp #include<bits/stdc++.h> #include <cmath> using namespace std; int main() { int a,b,s=0; cin>>a>>b; for(int i=a;i<=b;i++){ int t=i; for(int j=1;t>0;j++){ if(t%10==2){ s++; } t=t/10; } } cout<<s; return 0 ; } ```
by yuwuyanqiu @ 2023-08-08 08:57:34


都好厉害
by Cjq0626 @ 2023-08-14 10:56:54


``` #include<iostream> using namespace std; int l,r,ans; void lr(int x){ int y; while(x){ y = x % 10; x /= 10; if(y == 2){ ans ++; } } } int main(){ cin >> l >> r; for(int i = l ;i <= r;i ++){ lr(i); } cout << ans; return 0; } ```
by zqhbxsgs @ 2023-08-26 23:03:08


|