• 数组-07. 求一批整数中出现最多的个位数字(20)


    给定一批整数,分析每个整数的每一位数字,求出现次数最多的个位数字。例如给定3个整数1234、2345、3456,其中出现最多次数的数字是3和4,均出现了3次。

    输入格式:

    输入在第1行中给出正整数N(<=1000),在第2行中给出N个不超过整型范围的正整数,数字间以空格分隔。

    输出格式:

    在一行中按格式“M: n1 n2 ...”输出,其中M是最大次数,n1、n2、……为出现次数最多的个位数字,按从小到大的顺序排列。数字间以空格分隔,但末尾不得有多余空格。

    输入样例:

    3
    1234 2345 3456
    

    输出样例:

    3: 3 4

    #include <iostream>
    #include <stdio.h>
    #include <math.h>
    #include <string.h>
    #include <stdlib.h>
    
    using namespace::std; 
    
    int main(){
         int n;
    	 scanf("%d",&n);
    	 int a[1000];
    	 for(int i=0;i<n;i++)
    	 {
    	 	scanf("%d",&a[i]);
    	 } 
    	 
    	 int b[10]={0};
    	 for(int i=0;i<n;i++)
    	 {
    	 	if(a[i]==0)
    	 	{
    	 		b[0]++;
    	 	}
    	 	else
    	 	{
    	 		int temp=a[i];
    	 		b[temp%10]++;
    	 		while((temp=temp/10)!=0)
    	 		{
    	 			b[temp%10]++;
    	 			
    	 		}
    	 	}
    	 }
    	 
    	 for(int i=0;i<10;i++)
    	 {
    	 //	printf("%d
    ",b[i]);
    	 }
    	 int max[10];
    	 int count=0;
    	 memset(max,-1,sizeof(max));
    	 for(int i=0;i<10;i++)
    	 {
    	 	if(b[i]>count)
    	 	{
    	 		count=b[i];
    	 		memset(max,-1,sizeof(max));
    	 		max[i]=1;
    	 	}else if(b[i]==count)
    	 	{
    	 	    max[i]=1;
    	 	}
    	 }
    	 printf("%d:",count);
    	for(int i=0;i<10;i++)
    	{
    	  if(max[i]==1)
    	  printf(" %d",i);	
        }
          return 0;
    }
    

      

  • 相关阅读:
    全球2/3的DNS瘫痪 顶级域名根服务器故障
    PHP多种形式发送邮件
    IOS开发的基础知识
    Java数字图像处理基础
    将HTML5 Canvas的内容保存为图片
    C# SortedList类概念和示例
    实例对比剖析c#引用参数的用法
    如何理解css中的float
    创建Google网站地图Sitemap.xml
    c#生成静态html文件,封装类
  • 原文地址:https://www.cnblogs.com/ligen/p/4270358.html
Copyright © 2020-2023  润新知