您的位置:首页 > 其它

uva 10193 All You Need Is Love

2013-05-23 10:55 537 查看
将两个2进制的数转换成10进制的数,然后看俩数是否互质,即最大公约数是否为1.

#include <iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
using namespace std;

char s1[33],s2[33];
int gcd(int a,int b)
{
if(b==0)
return a;
return gcd(b,a%b);
}
int tonum(char s[])
{
int len=strlen(s);
int sum=0;
for(int i=len-1,j=0;i>=0;i--,j++)
sum+=(s[i]-'0')*pow(2,j);
return sum;
}
int main()
{
int n;
cin>>n;
int num=1;
getchar();
while(n--)
{
gets(s1);
gets(s2);
int num1,num2;
num1=tonum(s1);
num2=tonum(s2);
if(num1<num2)
swap(num1,num2);
cout<<"Pair #"<<num++<<": ";
if(gcd(num1,num2)!=1)
cout<<"All you need is love!"<<endl;
else
cout<<"Love is not all you need!"<<endl;
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: