Задача Calculate Complex Sum

Здравейте. При решаването на задача Calculate complex sum, се получават междинните стойности на сумата, но не се събират. Някой може ли да помогне. https://pastebin.com/g9pYmwye . Добавени са няколко допълнителни реда принт за следене на междинните стойности. Предварително благодаря.

Здравей,

декларираш си нова променлива в самия цикъл, т.е. тя се нулира на всяка нова итерация, вместо да добавя каквото искаш - само трябва да си изнесеш този double sum = 1; извън for-a.

освен това result също не трябва да е int, a double, защото като се случи да делиш 2 int-a, резултатът ти винаги ще е int и някои от тестовете няма да минат :slight_smile:

примерно:
double xnn = 10/4; // print result = 2.0
double xnn = 10/4.0; // print result = 2.5

ето ти преработеното ти решение:
https://pastebin.com/PmNacmFJ

Успех :slight_smile:

Благодаря много:slight_smile:

Здравейте,

Аз се затрудних над същия проблем - междинните стойности не се събират, макар да съм сложил sum =… извън for loop-a.

Това ми е кода:

// S = 1 + 1!/x + 2!/x^2 + … + N!/x^n
double n = Double.parseDouble(userInput.nextLine());
double x = Double.parseDouble(userInput.nextLine());
double N = 1;
double nxn = 1;
for (int i = 1; i <= n; i++) {
N = N * i;
// System.out.println(N);
nxn = N/(Math.pow(x,i));
// System.out.println(nxn);
}
double sum = 1+(nxn);
System.out.printf("%.5f", sum);

С междинните printf виждам, че във формулата за sum се добавя само последната стойност на variable-a nxn - миналите се прескачат:
111

Някой може ли да ми подскаже, как да оправя variable scope (или нещо друго) на nxn, така че то да се събира?

Ако сложа sum преди for loop-a, получавам също грешен отговор при n = 3, x = 2 - 2.0000, а правилният отговор трябва да е 2.75000.

Благодаря предварително!

Поздрави,
Петър

Здравей.
Трябва да декларираш sum =1 над цикъла, а под него да зададеш да се ъпдейтва sum+=nxn;

1 Like

Благодаря ти, получи се!

Ето и моето решение, за който иска да го види:
CalculateComplexSum - Pastebin.com

1 Like