acwing 338. 計數問題
給定兩個整數 a 和 b,求 a 和 b 之間的所有數字中0~9的出現次數。
例如,a=1024,b=1032,則 a 和 b 之間共有9個數如下:
1024 1025 1026 1027 1028 1029 1030 1031 1032
其中『0』出現10次,『1』出現10次,『2』出現7次,『3』出現3次等等…
輸入格式
輸入包含多組測試資料。
每組測試資料佔一行,包含兩個整數 a 和 b。
當讀入一行為0 0時,表示輸入終止,且該行不作處理。
輸出格式
每組資料輸出乙個結果,每個結果佔一行。
每個結果包含十個用空格隔開的數字,第乙個數字表示『0』出現的次數,第二個數字表示『1』出現的次數,以此類推。
資料範圍
0using namespace std;
int a,b;
// 類似與字首和的思想,用count(n,i)來表示在1到n之中數字i出現的次數
// 用count(b,i)-count(a-1,i) 來求解a到b之間i出現的次數
// 對於任意乙個數我們
// 用dj表示第j位數
// 用l表示j之前的數
// 用r表示j後面的數
// 用p表示從0到j共多少個數
// 例如7位數abcdefg,當j=4時
// dj=d l=abc r=efg p=1000
// 我們用*** i jjj來表示在1到n之間的數
// res表示方案數,則有以下4種情況
// 1 i=0 l!=0
// 1.1 1<=***<=l-1
// res=(l-1)*p
// 1.2 ***=l
// 1.2.1 idi res=0
// 2 i!=0 l=0
// 同1.2
// 3 i!=0 l!=0
// 3.1 000<=***<=l-1 res=l*p
// 3.2 ***=l
// 同1.2
// 4 i=0 l=0
// 不存在
int div(int n)
return res;
}int count(int n,int i)
return res;
}int main()
return 0;
}
AcWing 338 計數問題
acwing 338.計數問題 給定兩個整數 a 和 b,求 a 和 b 之間的所有數字中0 9的出現次數。例如,a 1024,b 1032,則 a 和 b 之間共有9個數如下 1024 1025 1026 1027 1028 1029 1030 1031 1032 其中 0 出現10次,1 出現1...
ACWing 338 計數問題
給定兩個正整數a aa和b bb,求 a,b a,b a,b 之間所有數字中0 9 0 sim 9 0 9出現的次數。前導0 00不許出現。輸入格式 輸入包含多組測試資料。每組測試資料佔一行,包含兩個整數a aa和b bb。當讀入一行為0 0時,表示輸入終止,且該行不作處理。輸出格式 每組資料輸出乙...
計數問題(數字dp)
給定兩個整數 a 和 b,求 a 和 b 之間的所有數字中0 9的出現次數。例如,a 1024,b 1032,則 a 和 b 之間共有9個數如下 1024 1025 1026 1027 1028 1029 1030 1031 1032 其中 0 出現10次,1 出現10次,2 出現7次,3 出現3次...