为什么和答案输出一样但是被判错
查看原帖
为什么和答案输出一样但是被判错
801371
Midnight_szx楼主2023/8/22 10:44
#include<bits/stdc++.h>
using namespace std;
long long n, a, b;
long long f[100];
int main() {
	std::ios::sync_with_stdio(0);
	cin>>n;
	f[0] = 1;
	f[1] = 1;
	for(int i = 2; i <= 59; i++) 
		f[i] = f[i - 1] + f[i - 2];
	for(int i = 1; i <= n; i++) {
		scanf("%lld %lld", &a, &b);
		while(a != b) {
			if(b < a) {
				long long k = a;
				a = b;
				b = k;
			}
			int l = 1, r = 59;
			while(l <= r) {
				int mid = (l + r) / 2;
				if(f[mid] < b) 
				    l = mid + 1;
				else 
				    r = mid - 1;
			}
			b -= f[l - 1];
		}
		printf("%lld\n", a);
	}
	return 0;
}

样例一输入

11
2 3
3 3
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3

输出

1
3
1
1
1
1
2
1
1
1
3

我的输出

1
3
1
1
1
1
2
1
1
1
3
2023/8/22 10:44
加载中...