题目描述
兰博和提莫闲聊之后,回归到了他们的正题,约德尔人的未来。
说起约德尔人的未来,黑默丁格曾经提出了一个约德尔测试,将约德尔人的历史的每个阶段都用一个字符表达出来。(包括可写字符,不包括空格。)。然后将这个字符串转化为一个01串。转化规则是如果这个字符如果是字母或者数字,这个字符变为1,其它变为0。然后将这个01串和黑默丁格观测星空得到的01串做比较,得到一个相似率。相似率越高,则约德尔的未来越光明。
请问:相似率为多少?
直接上代码吧
#import <Foundation/Foundation.h>
/*
*题目描述
*兰博和提莫闲聊之后,回归到了他们的正题,约德尔人的未来。
*说起约德尔人的未来,黑默丁格曾经提出了一个约德尔测试,将约德尔人的历史的每个阶段都用一个字符表达出来。(包括可写字符,不包括空格。)。然后将这个字符串转化为一个01串。转化规则是如果这个字符是字母或者数字,这个字符变为1,其它变为0。然后将这个01串和黑默丁格观测星空得到的01串做比较,得到一个相似率。相似率越高,则约德尔的未来越光明。
*请问:相似率为多少?
*输入
*每组输入数据为两行,第一行为有关约德尔人历史的字符串,第二行是黑默丁格观测星空得到的字符串。(两个字符串的长度相等,字符串长度不小于1且不超过1000。)
*输出
*输出一行,在这一行输出相似率。用百分数表示。(相似率为相同字符的个数/总个数,精确到百分号小数点后两位。printf("%%");输出一个%。)
*样例输入 : @!%12dgsa
* : 010111100
*样例输出:66.67%
*/
int main(int argc, const char * argv[]) {
@autoreleasepool {
char arrYDE[1000];
char arrHMDG[1000];
NSLog(@"请输入 有关约德尔人历史的字符串 以及 黑默丁格观测星空得到的字符串\n");
gets(arrYDE);
gets(arrHMDG);
//将char数组转成NSString
NSString *strYDE = [NSString stringWithUTF8String:arrYDE];
NSString *strHMDG = [NSString stringWithUTF8String:arrHMDG];
int num = 0;
for (int i = 0;i < strYDE.length;i ++){
char index = arrYDE[i];
if((index >= '0' && index <= '9') || ((index >='A' && index <= 'Z') || (index >= 'a' && index <= 'z'))){
arrYDE[i] = '1';
}else{
arrYDE[i] = '0';
}
if (arrYDE[i] == arrHMDG[i]){
num ++;
}
}
NSLog(@"%d",num);
NSLog(@"%lu",(unsigned long)strYDE.length);
NSLog(@"%@",[[NSString stringWithFormat:@"%.2f",(float)num/strYDE.length * 100] stringByAppendingString:@"%"]);
}
return 0;
}
//有错误的地方欢迎指出
//与我交流QQ:443411162