3563 - 1.cpp

统计长正整数n(最多10位)的各个位上出现数字123的次数,并输出次数的最大值。

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);
	}
}
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题