Soru & Cevap

Java Rekürsif Metod

02.01.2020 - 07:54

Rekürsif metod olarak bir dizinin ortalamasını almaya çalışıyorum ama düzgün bir sonuç vermiyor mantık hatası var sanırım ama farkedemedim. Bulan biri olursa yazarsa sevinirim...

KOD:

package javaapplication24;

/**
 *
 * @author Uğurcan
 */
public class JavaApplication24 {
//Çözülmesi gereken sorunları var..
    public static int arit(int[] a,int i){
        if(i>=a.length-1) return (a[a.length-2]/a.length); 
        else return a[i]/a.length + arit(a,++i);
       
        
    }
    public static void main(String[] args) {
        int[] x={1,1,1};
        int i=0; 
        int u = x.length;
        System.out.println(u);
       int sonuc=arit(x,i);
        System.out.println(sonuc);
    }
    
}

96 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user kagankartal
kagankartal
03.01.2020 - 06:55
    public static float average(int a[], int i, int n) { 
        if (i == n - 1) {       //son eleman
            return a[i]; 
        } else if (i == 0) {    //ilk eleman
            return ((a[i] + average(a, i + 1, n)) / n); 
        }

        return (a[i] + average(a, i + 1, n)); 
    } 
       
    public static float arit(int a[], int i) { 
         //ilk index olarak 0 gönderiyoruz
         return average(a, 0, i); 
    } 
      
    public static void main (String[] args) { 
        int[] x = {1, 1, 1};
        int u = x.length;
        
        System.out.println(u);
        float sonuc = arit(x, u);
        System.out.println(sonuc);
    }

Ortalama almak için for içinde döndürerek toplam alıp eleman sayısına bölmek daha kolay bir yok olabilir ama illa recursive yapılacaksa bunu deneyebilirsin.