我是打表找的规律 233

样例什么作用都没有 只会迷惑作用。。。

1330: 天才琪露诺的完美算数教室

时间限制: 1 Sec  内存限制: 128 MB  Special Judge
提交: 37  解决: 17
[提交][状态][讨论版]

题目描述

みんなー ちるのの算数教室はじまるよー

アタイみたいな天才めざしてがんばっていってねー

今天,琪露诺教大家异或运算。

“参与运算的两个值,如果两个相应位相同,则结果为0,否则为1。

现在,泥萌已经掌握了异或的基本知识,现在来一道题大展身手吧!”

 

琪露诺给泥的题是酱紫的:

给定一个数k,泥要找出一个正整数对(l,r),使得l^(l+1)^...^(r-1)^r=k

其中l<r,且均在long long范围内

 

琪露诺的题泥一定会的,是吧?

输入

第一行给定测试数据组数T(<105)

每组数据仅包含一个非负整数k(<1018)

输出

对每组数据,只需输出一行l和r即可

样例输入

3
0
4
12

样例输出

8 67
97 100
87 90
 1 #include <cstdio>
 2 typedef long long LL;
 3 int main ()
 4 {
 5     int T; scanf ("%d",&T);
 6     while (T--) {
 7         LL x; scanf ("%lld",&x);
 8         if (x==0)  puts("1 3"); 
 9         else if (x==2)   puts("3 5"); 
10         else if (x==4)   puts("1 4");
11         else if (x%2==1)  printf("%lld %lld\n",x,x+4);
12         else printf("%lld %lld\n",x-4,x);
13     }
14     return 0;
15 }