PAT乙級真題1021 || 個位數(shù)統(tǒng)計(詳解,C/C++示例,測試點分析)

微信公眾號:計算機(jī)黑科學(xué)大全

【歡迎關(guān)注微信公眾號:計算機(jī)黑科學(xué)大全,對話框回復(fù):PAT乙級真題】獲取全部真題詳解及代碼示例
個人博客地址https://mzwang.top

個位數(shù)統(tǒng)計

題目描述:

給定一個k位整數(shù) N=d_{k?1}10^{k?1}+?+d_110^1+d_0 (0≤d_i ≤9, i=0,?,k?1, d_{k?1} >0),請編寫程序統(tǒng)計每種不同的個位數(shù)字出現(xiàn)的次數(shù)。例如:給定 N=100311,則有 2 個 0,3 個 1,和 1 個 3。

輸入格式:

每個輸入包含 1 個測試用例,即一個不超過 1000 位的正整數(shù) N。

輸出格式:

對 N 中每一種不同的個位數(shù)字,以 D:M 的格式在一行中輸出該位數(shù)字 D 及其在N 中出現(xiàn)的次數(shù) M。要求按 D 的升序輸出。

輸入樣例:

100311

輸出樣例:

0:2
1:3
3:1

題目來源:PAT乙級1021
作者:CHEN, Yue
單位:浙江大學(xué)

問題解決:

解題思想

N為不超過 1000 位的正整數(shù),顯然不能用單個變量來存 N 的值,可用字符數(shù)組存入 N? 的每一位;輸入時遇到換行即輸入結(jié)束;設(shè)置一個整型數(shù)組coun[10]來統(tǒng)計各位數(shù)字出現(xiàn)的次數(shù);個數(shù)為0個的數(shù)字不輸出。

代碼示例(C/C++)

小提示:請將以下代碼保存為.cpp格式(C++程序)左右滑動代碼可查看全部內(nèi)容

#include <cstdio>
#define MAXN 1001
using namespace std;
int main()
{
    char num[MAXN];//用字符數(shù)組存入輸入的大數(shù)
    int i = 0;
    num[i] = getchar();
    while(num[i] != '\n'){//遇到換行即輸入結(jié)束
        i++;
        num[i] = getchar();
    }
    i = 0;
    int coun[10] = {0};//統(tǒng)計數(shù)組
    while(num[i] != '\n'){
        int n = num[i] - '0';//字符轉(zhuǎn)化為數(shù)字
        coun[n]++;
        i++;
    }
    for(i = 0; i < 10; i++){
        if(coun[i] != 0){//個數(shù)為0個的數(shù)字不輸出
            printf("%d:%d\n",i,coun[i]);
        }
    }
    return 0;
}
微信號:aiyoutao76
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容