
微信公眾號:計算機(jī)黑科學(xué)大全
【歡迎關(guān)注微信公眾號:計算機(jī)黑科學(xué)大全,對話框回復(fù):PAT乙級真題】獲取全部真題詳解及代碼示例
個人博客地址:https://mzwang.top
個位數(shù)統(tǒng)計
題目描述:
給定一個
位整數(shù)
,請編寫程序統(tǒng)計每種不同的個位數(shù)字出現(xiàn)的次數(shù)。例如:給定
,則有 2 個 0,3 個 1,和 1 個 3。
輸入格式:
每個輸入包含 1 個測試用例,即一個不超過 1000 位的正整數(shù)
。
輸出格式:
對 N 中每一種不同的個位數(shù)字,以
D:M的格式在一行中輸出該位數(shù)字D及其在N中出現(xiàn)的次數(shù)M。要求按D的升序輸出。輸入樣例:
100311輸出樣例:
0:2 1:3 3:1題目來源:PAT乙級1021
作者:CHEN, Yue
單位:浙江大學(xué)
問題解決:
解題思想
為不超過 1000 位的正整數(shù),顯然不能用單個變量來存
的值,可用字符數(shù)組存入
的每一位;輸入時遇到換行即輸入結(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