50/100 equazione non quadratica

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.

2 Mi Piace

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.:thinking:

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.