3563 - 1.cpp
统计长正整数n(最多10位)的各个位上出现数字1、2、3的次数,并输出次数的最大值。
当n=123114350时,输出3 1 2(分别表示数字1出现3次,数字2出现1次,数字3出现2次)
然后输出 3
程序中长整数n需要键盘输入
题目输入
输入一个长整型数据。 (多组输入数据)
题目输出
数字1出现的次数,数字2出现的次数,数字3出现的次数值,次数的最大值。每个数据用1个空格分隔。(多组输出数据)
输入/输出样例
题目输入
123114350 231412356
题目输出
3 1 2 3 2 2 2 2
C语言解答
#include <stdio.h> #include <math.h> #include <stdlib.h> #include <time.h> int main() { // freopen("in","r",stdin); // freopen("out","w",stdout); int c1,c2,c3,max,i; long n; while(scanf("%ld",&n)!=EOF) { c1 = c2 = c3 = 0; while (n) { i=n%10; switch(i) { case 1: c1++;break; case 2: c2++;break; case 3: c3++; } n/= 10; } max=c1; if(max<c2) max=c2; if(max<c3) max=c3; printf("%d %d %d %d\n",c1,c2,c3,max); } return 0; }
C++解答
#include<stdio.h> main() { int a[10],i,n,m,l,max; long b; while(scanf("%d",&b)!=EOF) { n=0;l=0;m=0;i=0; while(b!=0) { a[i]=(b%10); b=b/10; i++; } for(i=0;i<10;i++) { if(a[i]==1) n+=1; else if(a[i]==2) m+=1; else if(a[i]==3) l+=1; } if(n>m) max=n; else max=m; if(max<l) max=l; printf("%d %d %d %d\n",n,m,l,max); } }