PAT B1021 個位數統計 15

2021-07-25 13:49:09 字數 1069 閱讀 8794

題目要求:給定乙個k位整數n = dk-1*10k-1 + … + d1*101 + d0 (0<=di<=9, i=0,…,k-1, dk-1>0),請編寫程式統計每種不同的個位數字出現的次數。例如:給定n = 100311,則有2個0,3個1,和1個3。

輸入格式:

每個輸入包含1個測試用例,即乙個不超過1000位的正整數n。

輸出格式:

對n中每一種不同的個位數字,以d:m的格式在一行中輸出該位數字d及其在n中出現的次數m。要求按d的公升序輸出。

輸入樣例:

100311

輸出樣例:

0:2

1:3

3:1解題思路:初一看此題,覺得可以拆分數字的每一位進行分別判斷,然而題目中的要求為「輸入乙個不超過1000位的正整數n」,數字型別中即使使用long long 也無法獲取到乙個1000位的正整數,所以我們思考此處使用string型別獲取輸入進行拆分。

參考**:

#include 

#include //下文需要呼叫string的length()函式,所以此處需要包含標頭檔案

using

namespace

std;

int main()

; //用來記錄每乙個數出現的次數,b[0]為0出現的次數

for(int i=0;iswitch ((int)a[i]-48) //將string拆分後是char型別,所以需要通過轉化為int再-48才能得

//到乙個相同的整數

for(int i=0;i<10;i++) //因為是按照數字公升序排列,所以此時從i=0開始檢查

if(b[i]) //b[i]有值才輸出,b[i]有值證明i出現過,所以才列印

cout

<":"

//乙個數就換行,使列印美觀又**簡單

return

0;}

PAT B1021 個位數統計 15

題目要求 給定乙個k位整數n dk 1 10k 1 d1 101 d0 0 di 9,i 0,k 1,dk 1 0 請編寫程式統計每種不同的個位數字出現的次數。例如 給定n 100311,則有2個0,3個1,和1個3。輸入格式 每個輸入包含1個測試用例,即乙個不超過1000位的正整數n。輸出格式 對...

PAT B1021 個位數統計 15

馬克一下這個有紀念意義的題,因為它某種程度上說明了我的蠢。給定乙個k位整數n dk 1 10k 1 d1 101 d0 0 di 9,i 0,k 1,dk 1 0 請編寫程式統計每種不同的個位數字出現的次數。例如 給定n 100311,則有2個0,3個1,和1個3。輸入格式 每個輸入包含1個測試用例...

PAT B1021 個位數統計 15

給定乙個k位整數n dk 1 10k 1 d1 101 d0 0 di 9,i 0,k 1,dk 1 0 請編寫程式統計每種不同的個位數字出現的次數。例如 給定n 100311,則有2個0,3個1,和1個3。輸入格式 每個輸入包含1個測試用例,即乙個不超過1000位的正整數n。輸出格式 對n中每一種...