我的代码厨师提交显示错误的结果

My codechef submit is showing wrong result

本文关键字:错误 结果 显示 提交 代码 我的      更新时间:2023-10-16

我正在尝试解决这个代码厨师问题

#include <bits/stdc++.h>
using namespace std;
int main() {
int T;
scanf("%d", &T);
assert(T >= 1 && T <= 50);
while(T--) {
int n,k;
long long int a;
scanf("%d" , &n);
scanf("%ld" , &a);
scanf("%d" , &k);
long int sum = (n-2) * 180;
long long int d = ((sum - (n*a)) * 2 ) / (n*n - n);
long long int kthAngle = a + ((k-1)*d);
printf("%lld 1n", kthAngle);
}
return 0;
}

我在许多情况下都得到了正确的答案,但我在代码厨师提交时得到了错误的答案

有人知道吗?

您获得的 d (common_difference( 也可以包含您忽略的浮点结果。您也必须考虑这一点,或者像我在修改后的解决方案中给出的那样分别处理分子和分母部分。

因此,对于以下情况,您的解决方案将失败:

1
7 50 5

输出:3250 21

您的输出:154 1

试试这个:

#include <bits/stdc++.h>
using namespace std;
int main() {
int T;
scanf("%d", &T);
assert(T >= 1 && T <= 50);
while(T--) {
int n,k;
int a;
scanf("%d" , &n);
scanf("%d" , &a);
scanf("%d" , &k);
int sum = (n-2) * 180;
int d_numerator = (sum - (n*a)) * 2 ;
int d_denominator = n * (n-1);
int kthAngle_num =  a * d_denominator + ((k-1) * d_numerator);
int kthAngle_den = d_denominator;
int gcd = __gcd(kthAngle_num, kthAngle_den);
printf("%d %dn", kthAngle_num/gcd, kthAngle_den/gcd);
}
return 0;
}