版权声明:本文为博主原创文章,顺手点个赞叭~有问题欢迎指出(*╹▽╹*) https://blog.csdn.net/qq_41117236/article/details/89674444
【题面】
【题解】
题意:斐波那契数列,给定a,b,如果 结果为偶数则输出0,奇数则输出1。数据范围
思路: 这也太简单了8我靠..俩傻子队友比赛的时候搞半天大数,早知道管管他们了(小声bb)。
根据斐波那契数列的性质,易得数列前缀和奇偶性规律为 1 0 0 1 0 0 1 0 0... 循环节为3,我们都知道3的倍数有个规律就是各位上数字的和也整除3,所以我们可以直接字符串存储取出每一位的数字求和,判断[1,b]-[1,a-1]前缀和之差的奇偶性即可,我们可以把求前缀和之差判断奇偶性转换个思路,奇数-奇数==偶数-偶数==偶数,奇数-偶数==偶数-奇数==奇数,所以只需要判断一奇一偶的情况输出1否则输出0即可。
【代码】
#include <bits/stdc++.h>
using namespace std;
#define ll long long
char a[10005],b[10005];
int main()
{
int t; scanf("%d",&t);
while(t--){
scanf("%s %s",a,b);
int c=0,d=0;
for(int i=0;i<strlen(a);i++)
c+=a[i]-'0';
c--;
for(int i=0;i<strlen(b);i++)
d+=b[i]-'0';
printf("%d\n",(c%3==1&&d%3!=1)||(c%3!=1&&d%3==1));
}
return 0;
}