J'ai donc essayé d'utiliser BigDecimal qui me donne la valeur du nombre d'Euler jusqu'à 50 décimales. Mais puisque la valeur de contrainte est aussi élevée, le nombre peut aller de 1 à 10^6000, et par conséquent je n'obtiens aucune précision (le rendre optimal est un autre problème). Voici le bloc de code:est-il possible d'obtenir la somme du produit du nombre d'euler et d'un entier, où l'entier peut aller jusqu'à 10^6000?
for(int i=1; i<n+1; i++){
// i is the integer value and bd is the value of the euler's number, so below i am multiplying the value of i with the euler's number
BigDecimal x = BigDecimal.valueOf(i).multiply(bd);
//Here i am taking floor of the above calculated value
x.setScale(0, RoundingMode.HALF_UP);
//and here sum is floor[1*euler's no] + floor[2*euler's number] + ... + floor[n*euler's number]
sum += x.intValue();
}
Qu'est-ce que «somme»? Vous pourriez aussi avoir besoin de faire un BigDecimal. – lucasvw
L'extrait de code suggère que vous voulez résumer 10^6000 numéros: bonne chance avec cela. – Henry
Je voulais d'abord suggérer d'utiliser la formule '(n * (n + 1)/2)' et de le multiplier avec bd * une fois *, puis de tronquer, mais cela ne tenait pas compte du fait que vous deviez ajouter le sol valeurs, donc 1 * e deviendrait 2, 2 * e deviendrait 5, donnant un sous-total de 7, etc. tandis que 3 * e deviendrait 8, donnant déjà une erreur de 1. Tu devras boucler, j'ai peur. –