赛码网—在线编程(五)约德尔测试
来源:互联网 发布:电信网络诈骗犯罪 编辑:程序博客网 时间:2024/04/28 05:29
约德尔测试
题目描述
兰博和提莫闲聊之后,回归到了他们的正题,约德尔人的未来。
说起约德尔人的未来,黑默丁格曾经提出了一个约德尔测试,将约德尔人的历史的每个阶段都用一个字符表达出来。(包括可写字符,不包括空格。)。然后将这个字符串转化为一个01串。转化规则是如果这个字符如果是字母或者数字,这个字符变为1,其它变为0。然后将这个01串和黑默丁格观测星空得到的01串做比较,得到一个相似率。相似率越高,则约德尔的未来越光明。
请问:相似率为多少?
解题思路:直接用java自带函数isLetterOrDigit判断一个字符是不是数字或字母,是就返回1,不是就返回0,然后一个for循环判断两个二进制字符串对应位置是否相同,相同就count+1,最后count除以数组长度即可。
import java.math.BigInteger;import java.text.NumberFormat;import java.util.Scanner;import static java.lang.Character.isLetterOrDigit;/** * Created by SX10100563 on 2016/11/23. * 赛码网,在线编程,“约德尔测试” */public class test5 { public static void main(String[] args) { Scanner input = new Scanner(System.in); String str = input.nextLine(); String result = input.nextLine(); char[] str_char = str.toCharArray(); for (int i = 0; i < str_char.length; i++) { if (isLetterOrDigit(str_char[i])) { str_char[i] = '1'; } else { str_char[i] = '0'; } } int count = 0; for (int i = 0; i < result.length(); i++) { String str1 = String.valueOf(str_char[i]); String str2 = String.valueOf(result.charAt(i));// System.out.print(str1 + "" + str2 + str1.equals(str2) + "....."); if (str1.equals(str2)) { count++; } } double percent = (double)count / result.length(); NumberFormat nt = NumberFormat.getPercentInstance(); nt.setMinimumFractionDigits(2); System.out.println(nt.format(percent)); }}
0 0
- 赛码网—在线编程(五)约德尔测试
- 赛码网:在线编程--约德尔测试
- 在线编程测试网站
- codility 在线编程测试
- 在线编程测试平台
- 赛码网—在线编程(一)股神
- 赛码网—在线编程(二)上台阶
- 赛码网—在线编程(四)路灯
- 赛码网—在线编程(三)翻转数组
- 赛码网—在线编程(六)公交车乘客
- 赛码网—在线编程(七)分苹果
- 一问一答的在线编程测试题小记
- 第7周编程题在线测试
- 赛码网-在线编程:股神
- 在线编程(一)
- 在线编程(二)
- 在线编程(三)
- shell编程实例五判断用户是否在线
- 人生,只有不停的学习,才能走的更远!
- qt5.6.2 出现无法解析的外部符号
- Android FTP上传图片
- 阿里云centos(linux)常用命令大全
- eclipse中使用maven创建Java web项目的详细步骤
- 赛码网—在线编程(五)约德尔测试
- 《C++ Primer Plus(第六版)》(6)(第五章 循环和关系表达式 笔记)
- android之recyclerview上拉加载下拉刷新
- LESS框架应用的初步学习
- Lua co-routines
- 第十三周项目五 拓扑排序算法的验证
- 改变结构体实参的几种方法
- Shell命令
- js-封装自己的class类