Witam
Mam pewien problem , napisałem sobie prościutki kod ( ponieważ jeszcze jestem w trakcie uczenia się ). Oto kod
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
new Main();
}
public Main(){
String tmp;
int n, limit;
double sum, test;
tmp = JOptionPane.showInputDialog("Podaj limit ");
limit = Integer.parseInt(tmp);
// Math.pow - potegownaie, pierwsza wartosc to liczba, druga to potega
// Jets to wzro na znajdywanie elementow ciagu 1 , 22, 33, 444
//a = (int)Math.pow(n, 4) + (317/6)*(int)Math.pow(n, 3) - 347*(int)Math.pow(n, 2) + (4063/6)*n - 383 ;
n = 1;
sum = 0;
test = ((double)317/6)*(double)Math.pow(n, 3) + ((double)4063/6)*n + (double)Math.pow(n, 4) - 347*(double)Math.pow(n, 2) - (double)383;
System.out.println(test);
do{
sum += (double)Math.pow(n, 4) + ((double)317/6)*(double)Math.pow(n, 3) - 347*(double)Math.pow(n, 2) + ((double)4063/6)*n - (double)383;
System.out.println(sum);
n++;
} while( n <= limit );
System.out.println("Podana suma ciągu to : "+ sum );
}
}
Chodzi o to że podczas liczenia sum nie dostaje poprawnej sumy. Weźmy pod uwagę limit = 1 zatem n będzie 1. Suma wychodzi 0.jakieśtamliczby a powinno wyjść 1. Dla porównania ułożyłem to samo równanie ale zamieniłem miejscami elementy równania, to drugie równanie zapisywane jest do zmiennej test. Tam jest poprawnie.
Nie wiem czy ja coś źle robię ? Czy może gdzieś jest jakoś źle zaokrąglana liczba ? Gdy wypisałem liczby pojedynczo i liczyłem z kalkulatorem było wszystko ok .
dodanie znacznika <code class="java"> - fp