Nella subtask 3, solo 2 output su 10 sono corretti.
ecco il link al problema: https://training.olinfo.it/#/task/equazione/statement
ecco il sorgente:
https://pastebin.com/FcuJb6Qp
Nella subtask 3, solo 2 output su 10 sono corretti.
ecco il link al problema: https://training.olinfo.it/#/task/equazione/statement
ecco il sorgente:
https://pastebin.com/FcuJb6Qp
Ciao,
prova a sostituire
for(i=0;i<=90;i++)
con
for(i=0;i<=1000;i++)
Prova a riscrivere la funzione somma lavorando solo con gli interi, con i double hai perdite di precisione. Per quanto riguarda il suggerimento di @Tredici, non credo sia necessario andare oltre il 90.
Io l’ho risolto con i<=180
comunque da quello che ricordo dello standard i double dovrebbero dare 15 cifre decimali perciò il codice dovrebbe essere valido.
N massimo è 10^18, perciò x massimo(poiché x è sempre minore della radice quadra di N) è 10^9, ne segue che la somma delle cifre di x è al più 90(anzi 81). Quindi non credo che il problema sia quello.
Magari qualche problema di casting legato ai limiti grandi.
Usare floating point perdi precisione a prescindere per come sono rappresentati in memoria
Indubbiamente (tranne per alcuni numeri) ma in alcuni casi il loro utilizzo dovrebbe essere irrilevante.