1033 - 字母概率
时间限制 : 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)