1033 - 字母概率

通过次数

0

提交次数

0

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

小明最近对概率问题很感兴趣。一天,小明和小红一起玩一个概率游戏,首先小明给出一个字母和一个单词,然后由小红计算这个字母在这个单词中出现的概率。字母不区分大小写。
例如,给定的字母是a,单词是apple,那么概率是0.20000。

题目输入

输入包含多组测试数据。每组数据包含一个字母和一个单词。单词的长度不超过200。

题目输出

对于每一个输入,输出对应的概率,结果保留5位小数。

输入/输出样例

输入格式

a apple
c Candy
a banana

输出格式

0.20000
0.20000
0.50000

C语言解答

#include<stdio.h>
#include<string.h>
#include<ctype.h>

int main()
{
	int i,n;
	char c,a[201];
	while(scanf("%c%*c%s%*c",&c,a)!=EOF)
	{
		for(n=i=0;i<strlen(a);i++)
			if(c==tolower(a[i])||c==toupper(a[i]))
				n++;
		printf("%.5f\n",n*1.0/strlen(a));
	}
	return 0;
}

C++解答

#include<stdio.h>
#include<string.h>
#include<ctype.h>

int main()
{
	int i,n;
	char c,a[201];
	while(scanf("%c%*c%s%*c",&c,a)!=EOF)
	{
		for(n=i=0;i<strlen(a);i++)
			if(c==tolower(a[i])||c==toupper(a[i]))
				n++;
		printf("%.5f\n",n*1.0/strlen(a));
	}
	return 0;
}

Java解答

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while(in.hasNext()){
			char c = in.next().charAt(0);
			if(c<='Z')c = (char) (c-'A'+'a');
			String s = in.next();
			int cou = 0;
			for(int i=0;i<s.length();i++){
				char tem = s.charAt(i);
				if(tem<='Z')tem = (char) (tem-'A'+'a');
				if(tem==c)cou++;
			}
				
			System.out.printf("%.5f\n", (float)cou/(float)s.length());
		}
	}

}

Python解答

import sys
for line in sys.stdin:
    data = line.split()
    a = data[0].lower()
    b = data[1].lower()
    c = b.count(a)
    d = len(data[1])
    print '%0.5f'%(float(c)/d)