2586 - 数字的个数

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

读入一串数字,以句号结束,请统计其中‘0’到‘9’的各个数字的个数。(出现过的数字)

题目输入

读入一串数字,以句号结束.

题目输出

统计其中‘0’到‘9’的各个数字的个数

输入/输出样例

输入格式

91254782354987012345978.

输出格式

0:1 1:2 2:3 3:2 4:3 5:3 7:3 8:3 9:3

C语言解答

#include <stdio.h>
#include <stdlib.h>
#include "string.h"



int main()
{
	char temp;
	int i , arry[10] = {0};
	
	while((temp = getchar()) != '.')
	{
		arry[temp - 48]++;
	}

	for(i = 0;i < 10; i ++)
	{
		if(arry[i] != 0)
		{
			printf("%d:%d",i,arry[i]);
			printf(" ");
		}
	}

	
	return 0;	
}

C++解答

//#include "stdafx.h"
#include <iostream>
#include <cstring>
using namespace std;

int main()
{
	int i,j;
	int num[10] = {0};
	char temp;
	while((temp = getchar())!='.')
	{
		
		num[temp-48]++;

	}
		for(i=0;i<10;i++)
		if(num[i]!=0){
		cout<<i<<":"<<num[i]<<" ";
}
		cout<<endl;
	return 0;
}

Java解答

import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner input=new Scanner(System.in);
		input.useDelimiter("\\.");//英文句号
		StringBuffer str=new StringBuffer(input.next());
		int[] a=new int[str.length()];
		for(int i=0;i<str.length();i++) {
			a[i]=Integer.parseInt(String.valueOf(str.charAt(i)));
		}
		int count=0;
		int[] c=new int[10];
		for(int i=0;i<10;i++) {
			for(int j=0;j<str.length();j++) {
				if(a[j]==i) {
					count++;
				}
			}
			c[i]+=count;
			count=0;
		}
		for(int i=0;i<10;i++) {
			if(c[i]!=0) {
				System.out.print(i+":"+c[i]+" ");
			}
		}
}
}