直接将数字转化成二进制进行判断,注意到范围0<=a,b<10^100,采用高精度除法
余数是0还是1只要看最后一位是奇数还是偶数
#include<stdio.h>
#include<string.h>
int solve(char *str)
{
int num[1000],len=strlen(str),i,ans=0;
for(i=1;i<=len;i++)
num[i]=str[len-i]-'0';
while(len>0)
{
for(i=len;i>1;i--)
{
num[i-1]+=(num[i]%2)*10;
num[i]/=2;
}
ans+=num[1]%2;
num[1]/=2;
while(num[len]==0)
len--;
}
return ans;
}
int main()
{
char a[1000],b[1000];
while(scanf("%s%s",a,b)!=EOF)
{
int x=solve(a),y=solve(b);
//printf("%d %d\n",x,y);
if(x>y)
printf("wm\n");
else if(x<y)
printf("zyf\n");
else
printf("neither\n");
}
return 0;
}