Kod nie działa mimo braku błędów. ładuje się w nieskończoność.

0
package labolatorium3;

import java.util.*;

public class Zad8 {
        public static void main(String args[])
    {
Scanner cos = new Scanner(System.in);
    double n;
    System.out.println("Podaj liczbe n: ");
    n = cos.nextDouble();
    System.out.println("Suma to: "+suma(n));
}
        public static double suma(double n)
        {
            double m;
            double x=0;
    for(double i=1; i<=n; i++)
    {
        m=n-i;
    x=x+(power(2,i) /power(i,n-i));
    }
    return x;
        }
        
        public static double power(double a, double n)
{
    double m=n;
    double x=a;
                   
                    while(n!=1)
                    {
                    x=x*a;
                    n--;
                    }

                    
        if (m==0)
            x=1;
        return x;
}
}
0

rozwiązałem zadanie trochę innym sposobem, także to już nic pilnego. z nieznanych mi przyczyn napisanie power (m,n-i) wpędza program w nieskończone wykonywanie się bez podania wyniku. za to napisanie x=n-i; power (m,x) już jest ok.

0

jak to mimo braku bledow :D warunek while(n!=1) jest skopany, bo przekazujesz 0 jako n...

1

Fakt kompilacji kodu nie czyni go jeszcze poprawnym :)

1

Błędy składniowe != błędy logiczne.

n jest typu double a ty dajesz:

while(n!=1)
{
...
n--;
}

Dla każdego niecałkowitego n a także dla n<1 masz nieskończoną pętlę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1