題目描述
蘭博和提莫閑聊之后,回歸到了他們的正題,約德爾人的未來。
說起約德爾人的未來,黑默丁格曾經提出了一個約德爾測試,將約德爾人的歷史的每個階段都用一個字符表達出來。(包括可寫字符,不包括空格。)。然后將這個字符串轉化為一個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