蒟蒻求助洛谷IDE过不了
查看原帖
蒟蒻求助洛谷IDE过不了
820529
LimitTimeAC楼主2022/11/1 23:08

萌新想用一元二次方程解题,然后洛谷IDE给了一个完全离谱的答案......

#include<bits/stdc++.h>
using namespace std;
long long k, n, e, d, q, a, b, c;
double x, y;
int main(){
    scanf("%d", &k);
    for(int i=1;i<=k;i++){
        scanf("%d %d %d", &n, &d, &e);
        printf("%d %d %d\t\t" , n, d, e);
        a = 1;
        b = e*d-n;
        c = n;
        if(b*b-4*a*c<0){
            printf("NO\n"); continue;
        }
        /*
        -b (+-) sqrt(pow(b, 2) - 4*a*c)
        -------------------------------
                     2a
        */
        //printf("%d %d %d\t\t\t", a, b, c);
        //a=1; b=-2; c=1;
        //printf("%d %d %d %d %d", pow(b, 2), pow(b, 2) - 4*a*c, sqrt(pow(b, 2) - 4*a*c), -b+sqrt(pow(b, 2) - 4*a*c), 1.0*(-b+sqrt(pow(b, 2) - 4*a*c))/(2*a));
        x = 1.0*(-b+sqrt(pow(b, 2) - 4*a*c))/(2*a);
        //printf("%d\n", x);
        
        if(double(int(x)) == x){
            y = n / int(x);
            if(x>y) printf("%d %d\n", y, x);
            else printf("%d %d\n", x, y);
            continue;
        }
        printf("NO\n");
    }
    return 0;
} 

输入:

10
770 77 5
633 1 211
545 1 499
683 3 227
858 3 257
723 37 13
572 26 11
867 17 17
829 3 263
528 4 109

标准输出:

2 385
NO
NO
NO
11 78
3 241
2 286
NO
NO
6 88

我的输出

NO
NO
NO
NO
NO
NO
NO
NO
NO
NO
2022/11/1 23:08
加载中...