1. 程式人生 > >數字統計——ybt 1096

數字統計——ybt 1096

【題目描述】

請統計某個給定範圍[L, R]的所有整數中,數字2出現的次數。

比如給定範圍[2, 22],數字2在數2中出現了1次,在數12中出現1次,在數20中出現1次,在數21中出現1次,在數22中出現2次,所以數字2在該範圍內一共出現了6次。

【輸入】

輸入共 1 行,為兩個正整數 L 和 R,之間用一個空格隔開。

【輸出】

輸出共 1 行,表示數字 2 出現的次數。

【輸入樣例】

2 22

【輸出樣例】

6

【提示】

樣例 #2:

2 100

樣例 #2:

20


題解:先把l到r都循環一遍,然後把i賦值給t,然後再把i的數字分解出來,如果t等於二,則就統計次數,之後要不斷地除以10,為了避免十位、百位、千位的數也有數字二,如果t本身就是2,除以10之後等於0,則t就小於0,所以下一次就不用執行。


源代碼:

#include<iostream>
using namespace std;
int main()
{
long l,r,ans=0;

cin>>l>>r;
for (int i=l;i<=r;i++)
{
long t=i;
while (t>0)
{
if (t%10==2) ans++;
t/=10;
}
}
cout<<ans<<endl;
return 0;
}

數字統計——ybt 1096