首页 > 技术文章 > balaba迷之图书馆(c语言)

ctt12345678 2021-12-18 14:39 原文

描述

 

传说在满洲皇家工业大学里,有一栋奇妙的图书馆。知名中原文学家 曾感叹道:工大图书馆,一跃解千愁

更可啪的是,TA还拥有一个奇妙的电梯,里面只有两个按键,当电梯停在x楼时,第一个按键可以使电梯上升到x+1楼,第二个按键则会使电梯上升到2x楼。

更更更可啪的是,在奇数楼层时,电梯是拒绝只上升一层的,此时你只能按下另一个按键使电梯层数上升一倍。

那么现在问题来了,懒得爬楼梯的axp想要坐电梯上楼,请你告诉他电梯能否到达目标楼层。

 

输入

 

第一行一个整数T,表示数据组数。(T<=100000)
接下来T行,每行有两个整数xy,分别表示现在所在楼层数和目的楼层数。(1<=x<=y<=10^18)



 

输出

 

如果能够乘电梯到达,输出"2333",接下来一行输出按键顺序,如果为上升一楼输出"+",层数翻倍输出"*"

否则输出"OH NO!"

 

输入样例 1 

6
5 5
5 10
5 11
5 12
5 13
5 14

输出样例 1

2333

2333
*
2333
*+
OH NO!
OH NO!
OH NO!
其实本题仔细分析就很简单。
x所在层数可能为奇数也可能为偶数,y也是,那么从x变化到y,y为偶数时,只能是奇数*2或者偶数*2,y为奇数时,
只能是偶数加一,很明显,我们应该采用逆向思维,从y变化到x.
 
代码:
 
 

 

 

 

 
                                                         
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

推荐阅读