基础编程题:约德尔测试 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实现

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