算法————暴力模拟
这道题目我本来看是绿题,而且数据范围小,一开始就像模拟,然而最后也是如此......
C++ 代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
ll l,r;
cin>>l>>r;
ll ans=0,x;
for(ll i=l;i<=r;i++)
{
x=i;
while(x!=0)
{
if(x%10==2)ans++;//若最小位为2,ans++。
x/=10;//把个位删除,全体向右挪一位
}//求i中有多少个2。
}
cout<<ans;
return 0;
}
大佬,为什么我不用x=i,就会超时呢
x是枚举i呀,你不赋值的话本来答案就错了呀
【样例】就是x以此为:2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22;
然后依次查看每个x中的2的个数
直接遍历并且枚举i不行吗
for(ll i=l;i<=r;i) {
while(i!=0) {
if(i%10==2)
ans;
i/=10; }
}
这样最好i=0那你循环就成了无限循环呀
老哥看看我的题解
纯傻瓜
?