本文主要是介绍每天一个小题目——约德尔测试,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
约德尔测试
- 题目描述
兰博和提莫闲聊之后,回归到了他们的正题,约德尔人的未来。 说起约德尔人的未来,黑默丁格曾经提出了一个约德尔测试,将约德尔人的历史的每个阶段都用一个字符表达出来。(包括可写字符,不包括空格。)。然后将这个字符串转化为一个01串。转化规则是如果这个字符如果是字母或者数字,这个字符变为1,其它变为0。然后将这个01串和黑默丁格观测星空得到的01串做比较,得到一个相似率。相似率越高,则约德尔的未来越光明。 请问:相似率为多少?
代码如下:
#include<iostream>//#include<cstring>using namespace std;float compare(string x1, string x2, int n){float cnt = 0;for (int i = 0; i < n; ++i)if (x1[i] == x2[i])++cnt;return 100 * cnt / n;} int main(){string s1, s2;getline(cin, s1);getline(cin, s2);if(s1.size() == s2.size()){// cout << "yes" << endl;for (int i = 0; i < s1.size(); ++i){ // 改第一行的字符 if (isalnum(s1[i]))s1[i] = '1';elses1[i] = '0';}printf("%.2f\%\n",compare(s1,s2,s1.size()));return 0;} }
这篇关于每天一个小题目——约德尔测试的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!