標籤:des style blog color 資料 os
Description
一天,wm和zyf想比比誰比較正氣,但正氣這種東西無法量化難以比較,為此,他們想出了一個方法,兩人各寫一個數字,然後轉化為二進位,誰的數字中二進位1多誰就比較正氣!
Input 輸入包含多組資料,EOF結束。
每組資料包含兩行,代表兩個非負整數a,b(0<=a,b<10^100,不含前置0),a為wm寫的數字,b為zyf寫的數字。Output 每組資料輸出一行,輸出正氣的西電人名字"wm"或"zyf",如果兩人的數字中二進位1一樣多就輸出"neither"。
#include <iostream>#include <string.h>using namespace std;int Ones(char *str);int main(){ char wm[101]; char zyf[101]; int len1, len2; string result; while(cin >> wm >> zyf){ len1 = Ones(wm); len2 = Ones(zyf); result = len1 > len2? "wm": len1 == len2? "neither" : "zyf"; cout << result <<endl; }}int Ones(char *str){ int sum = 0, pos = 0; int length = strlen(str); for(int i = 0; i < length; i++) str[i] -= ‘0‘; while(pos != length){ for(int i = pos; i < length -1; i++) { str[i + 1] += str[i] % 2 *10; str[i] /= 2; } sum += str[length - 1] % 2; str[length - 1] /= 2; while(str[pos] == 0 && pos < length) pos++; } return sum;}