那些网站可以做自媒体,wordpress如何添加备案号代码,加油卡系统搭建,菠菜网站怎么建设题目
给定一个 k 位整数 Ndk−110k−1⋯d1101d0(0≤di≤9, i0,⋯,k−1, dk−10)#xff0c;请编写程序统计每种不同的个位数字出现的次数。例如#xff1a;给定 N100311#xff0c;则有 2 个 0#xff0c;3 个 1#xff0c;和 1 个 3。
输…题目
给定一个 k 位整数 Ndk−110k−1⋯d1101d0(0≤di≤9, i0,⋯,k−1, dk−10)请编写程序统计每种不同的个位数字出现的次数。例如给定 N100311则有 2 个 03 个 1和 1 个 3。
输入格式 每个输入包含 1 个测试用例即一个不超过 1000 位的正整数 N。 输出格式 对 N 中每一种不同的个位数字以 D:M 的格式在一行中输出该位数字 D 及其在 N 中出现的次数 M。要求按 D 的升序输出。 输入样例 100311 输出样例 0:2 1:3 3:1 分析
输入为不超过1000位的整数所以输入采用字符串或者字符数组。字符的种类是固定的即0~9的字符形式将输入的字符串分割为单独的字符然后再和固定的字符对比累计每个字符的数量按照题给格式输出
AC代码
#includeiostream
#includecstring
#includestring
using namespace std;
int main()
{int i,j;char a[10]{0,1,2,3,4,5,6,7,8,9};int count[10]{0,0,0,0,0,0,0,0,0,0};string s;cins;int res_lens.length()1;char result[res_len];strcpy(result, s.c_str());for(i0;ires_len;i)for(j0;j10;j){if(a[j]result[i]){count[j];}}for(i0;i10;i){if(count[i]!0){couta[i]:count[i]endl;}}return 0;
}总结 后面发现使用getchar方法更为简单。代码如下 优化代码
#includeiostream
#includecstring
#includestring
using namespace std;
int main()
{int i,j;char c;char a[10]{0,1,2,3,4,5,6,7,8,9};int count[10]{0,0,0,0,0,0,0,0,0,0};while((cgetchar())!\n) {for(i0;i10;i){if(ca[i])count[i];}}for(i0;i10;i){if(count[i]!0){couta[i]:count[i]endl;}}return 0;
}更多题解 pat 乙级 题解汇总持续更新C