基础编程题:约德尔测试 OC实现

作者: DeepChafferer | 来源:发表于2017-04-26 22:21 被阅读12次

题目描述
兰博和提莫闲聊之后,回归到了他们的正题,约德尔人的未来。
说起约德尔人的未来,黑默丁格曾经提出了一个约德尔测试,将约德尔人的历史的每个阶段都用一个字符表达出来。(包括可写字符,不包括空格。)。然后将这个字符串转化为一个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;
}

运行结果.png

//有错误的地方欢迎指出
//与我交流QQ:443411162

相关文章

  • 基础编程题:约德尔测试 OC实现

    题目描述兰博和提莫闲聊之后,回归到了他们的正题,约德尔人的未来。说起约德尔人的未来,黑默丁格曾经提出了一个约德尔测...

  • iOS 面试题(一)

    基础题:1.在oc中如何实现深度拷贝2.请描述什么是delegate、block、NSNotification,他...

  • 编程题测试

    给定以下8*8的0/1比特矩阵M, 请编程实现Mx(矩阵乘向量),x是8比特的0/1向量。即,输入x,输出Mx的值...

  • JavaSE 学习路线图

    面向对象编程基础 JavaFX入门 JDK基础组件的使用 Java函数式编程基础 JavaFX进阶 单元测试与构建...

  • 总纲

    一句代码创建常用UI控件类与对象OC中面向对象的编程思想OC基础语法复习OC中的协议OC中的block学习导航栏按...

  • 第五周学习总结

    本周已看了python基础知识的相关视频和PDF,练习了几道编程题,做编程题很没思路。

  • 编程笔试题(一)冒泡排序

    很多测试同学在面试做笔试题的时候都会遇到编程题,总的看来测试同学的编程题都不是很困难,主要在考察大家的代码基本功,...

  • KVC-NSKeyValueCoding

    KVC作为OC中重要的编程思想、在很多场景下我们都会使用,也是开发者必须掌握的基础知识。那么什么是KVC,他的实现...

  • 小马哥视频笔记-OC基础知识

    复习一遍OC基础知识,做一个完整笔记[toc] OC初步认知 OC是兼容C语言的OO:面向对象OOP:面向对象编程...

  • 链式文件生成器原理分析(一)

    在OC里面实现链式编程,可以使用返回调用者自身来实现。但是类有很多,每个类也有很多方法,假如要实现链式编程,则需要...

网友评论

    本文标题:基础编程题:约德尔测试 OC实现

    本文链接:https://www.haomeiwen.com/subject/ruhwzttx.html