3384 - 数字统计
时间限制 : 1 秒
内存限制 : 128 MB
请统计某个给定范围[L, R]的所有整数中,数字2 出现的次数。
<span style="color:#656565;font-family:verdana, arial, sans-serif;font-size:15.555556297302246px;line-height:25.600000381469727px;background-color:#FFFFFF;">比如给定范围[2, 22],数字2 在数2 中出现了1 次,在数12 中出现1 次,在数20 中出现1 次,在数21 中出现1 次,在数22 中出现2 次,所以数字2 在该范围内一共出现了6次。</span>
<span style="color:#656565;font-family:verdana, arial, sans-serif;font-size:15.555556297302246px;line-height:25.600000381469727px;background-color:#FFFFFF;"><span style="color:#656565;font-family:verdana, arial, sans-serif;font-size:15.555556297302246px;line-height:25.600000381469727px;background-color:#FFFFFF;">【数据范围】</span><br />
1 ≤ L ≤ R≤ 10000。
<span style="color:#656565;font-family:verdana, arial, sans-serif;font-size:15.555556297302246px;line-height:25.600000381469727px;background-color:#FFFFFF;"><br />
题目输入
输入共1 行,为两个正整数L 和R,之间用一个空格隔开。
题目输出
输出共1 行,表示数字2 出现的次数。
输入/输出样例
输入格式
【输入输出样例1】 2 22 【输入输出样例2】 2 100
输出格式
【输入输出样例1】 6 【输入输出样例2】 20
C++解答
#include<iostream> #include<cstdio> #include<cstring> using namespace std; int main() { int l,r,ans=0; cin>>l>>r; char s[11]; for(int i=l;i<=r;i++) { sprintf(s,"%d",i); int j=strlen(s); for(int a=0;a<=j;a++) if(s[a]=='2')ans++; } cout<<ans; }