思维入门1

    技术2022-07-11  77

    A. 小 B 的异或

    小 B 收到了一串数字,其中包含 nn 个数字。

    寄件人想知道这 nn 个数的异或结果,但小 B 并不会求,就把这个问题转交给你。

    但他为了使你求得的更方便,于是运用魔法把这 nn 个数都变成了 11 。

    现在,你需要求出这 nn 个 11 异或后的结果。

    关于异或:

    下表为 aa 与 bb 的异或结果: aabba \oplus ba⊕b110011111100000000001111 如果你还是不明白,可以在程序中使用a^b来查看 aa 和 bb 异或的结果。再不明白可在互联网上搜索相关知识。

    输入格式

    一行一个整数 nn。

    输出格式

    一行一个整数,为答案。

    数据范围

    对于 30\0% 的数据,1 \leq n \leq 10^61≤n≤106。

    对于 50\P% 的数据,1 \leq n \leq 10^91≤n≤109。

    对于 100\0% 的数据,1 \leq n \leq 10^{18}1≤n≤1018。

    输出时每行末尾的多余空格,不影响答案正确性

    样例输入1复制

    2

    样例输出1复制

    0

    样例解释1

    两个 11 异或,查表可知结果为 00。

    样例输入2复制

    3

    样例输出2复制

    1

    样例解释2

    三个 11 异或,结果为 11,可手动在程序中计算出答案。

    #include <bits/stdc++.h> using namespace std; int main() { long long n; cin>>n; if(n%2) cout<<1<<endl; else cout<<0<<endl; }

    B. 小 B 找数

    小 B 给你两个整数,请你求出两个数当中的公有数字。

    公有数字是指某个数字在两个整数中都出现过。

    只要你的程序在 1s1s 内找到结果,他就可以用这些数字给你变个魔术看。

    输入格式

    一行两个整数。

    输出格式

    一行几个数字,表示公有的数字,数字间用空格隔开。

    输出需按照数字大小由小到大输出。

    如果不存在,则输出 -1。

    数据范围

    设两个数字中较大的为 nn:

    对于 50\P% 的数据,0 \leq n \leq 10^90≤n≤109。

    对于 80\

    转载请注明原文地址:https://ipadbbs.8miu.com/read-18495.html
    最新回复(0)