#28985: 不知道哪裡有問題


sean911109 (formersama)

學校 : 不指定學校
編號 : 169815
來源 : [122.121.3.137]
最後登入時間 :
2023-12-24 01:23:12
e417. 乘法~乘法~加法~ -- π | From: [220.135.14.146] | 發表日期 : 2022-01-20 20:53

NA 0 

#include <stdio.h>
#include <math.h>

int main()
{
    unsigned long long sum = 0, min = 0;
    int i, number;
    while(scanf("%d", &i) != EOF)
    {  
        for (int j = 0; j < i ; j++)
        {
            scanf("%d", &number);

            sum += number;
            min += pow(number, 2);      
        }
        sum = pow(sum, 2);
        printf("%llu\n", (sum-min)/2);
        sum = 0;
        min = 0;
    }
    return 0;
}
 
#28986: Re:不知道哪裡有問題


sean911109 (formersama)

學校 : 不指定學校
編號 : 169815
來源 : [122.121.3.137]
最後登入時間 :
2023-12-24 01:23:12
e417. 乘法~乘法~加法~ -- π | From: [220.135.14.146] | 發表日期 : 2022-01-20 20:54

#0: 1% WA (line:1)

您的答案為: 115965441232045467
正確答案為: 115965441232045460

#1: 99% WA (line:4)

您的答案為: 6460609331686960
正確答案為: 6460609331686961
 
#28987: Re:不知道哪裡有問題


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [101.136.203.77]
最後登入時間 :
2024-04-07 15:34:14
e417. 乘法~乘法~加法~ -- π | From: [39.8.67.95] | 發表日期 : 2022-01-20 22:20

NA 0 


            min += pow(number, 2);  

        sum = pow(sum, 2);


不要用pow(),因為pow()不是用整數來運算而是用浮點,會有誤差。你可以直接乘就好了

 
#28991: Re:不知道哪裡有問題


sean911109 (formersama)

學校 : 不指定學校
編號 : 169815
來源 : [122.121.3.137]
最後登入時間 :
2023-12-24 01:23:12
e417. 乘法~乘法~加法~ -- π | From: [220.135.14.146] | 發表日期 : 2022-01-20 23:39

NA 0 


            min += pow(number, 2);  

        sum = pow(sum, 2);


不要用pow(),因為pow()不是用整數來運算而是用浮點,會有誤差。你可以直接乘就好了


感謝 已解決

 
ZeroJudge Forum