这段时间要沉迷刷题一段时间了,就让CSDN陪我一起吧!
一、题目大意
题目大致意思就是给定了一个具有一定规律的数组,这个数组满足如下规律:
题目给定若干组测试数据,每个测试数据给定a,b,n三个数,其中a是f(0),b是f(1),要求给出f(n)。
二、题目思路以及AC代码
这题一看就不能傻傻的去算,毕竟给的n是1e9,然后一看给的空间,也不足以用dp,所以自然就只能找规律了,再一看是异或操作,思路就很明显了。
这里我也就不解释了,假设f(0)=a,f(1)=b,自己往后算几个数就明白了。
下面给出AC代码:
#include <iostream>
using namespace std;
int a, b, n;
int main() {
int T;
cin >> T;
while (T--) {
cin >> a >> b >> n;
int ans = 0;
switch (n%3) {
case 0: ans = a; break;
case 1: ans = b; break;
case 2: ans = a^b; break;
}
cout << ans << endl;
}
return 0;
}
如果有问题,欢迎大家指正!!!