检查两个数字是否可以相同的算法

时间:2019-10-11 05:28:26

标签: python algorithm python-2.7

您好,我必须作为任务回答这个问题。我已经完成了代码,但没有获得满分,因为显然我缺少一些条件

给出两个整数AA和BB,通过应用以下所示的任意数量的运算来确定是否可以执行相同的操作:

  • 数字AA乘以2。

  • 将BB数乘以2。

如果打印为“ felizmil”,则为真,否则输出“ tristemil”

代码

drop table if exists TableA;

create table TableA
(dt date, Name varchar(1), Count1 INT);

insert into TableA values
('2019-01-01','A','5'),
('2019-01-01','B','15'),
('2019-02-01','B','20'),
('2019-02-01','C','15'),
('2019-02-01','D','30'),
('2019-03-01','A','30'),
('2019-03-01','D','10'); 

示例-> 3 5输出:tristemil 14 7输出:felizmil

我不知道我缺少哪些情况/条件,我将非常感谢您的帮助。非常感谢:D

2 个答案:

答案 0 :(得分:1)

我们可以做到:

def are_equal(a, b):
    if a > b:
        a, b = b, a

    if a == 0:
        return b == 0

    while a < b:
        a *= 2

    return a == b


if are_equal(2, 4):
    print('felizmil')
else:
    print('tristemil')


if are_equal(2, 3):
    print('felizmil')
else:
    print('tristemil')


assert are_equal(0, 0) == True
assert are_equal(0, 1) == False
assert are_equal(1, 0) == False
assert are_equal(1, 2) == True
assert are_equal(2, 1) == True
assert are_equal(2, 2) == True

答案 1 :(得分:0)

我的朋友A. Mercado用以下代码解决了这个问题:

a, b = raw_input().split()
a = int(a)
b = int(b)
if a == b:
    print("felizmil")
else:
    if a % 2 != 0 and b % 2 != 0:
        print("tristemil")
    elif a % 2 == 0 and b % 2 == 0:
        if a > b:
            if a % b == 0:
                print("felizmil")
            else:
                print("tristemil")
        else:
            if b % a == 0:
                print("felizmil")
            else:
                print("tristemil")
    else:
        if a > b:
            if (a*2) % b == 0:
                print("felizmil")
            else:
                print("tristemil")
        else:
            if (b*2) % a == 0:
                print("felizmil")
            else:
                print("tristemil")