Emre YILMAZ

Web Developer

Blog

Java - Girilen Sayının Basamakların Üssünü Alan Program
JAVA 0 01 Aralık 2017
Javada kullanıcıdan alınan sayının basamaklarının bir sayaça göre üslerinin alınıp toplamlarını veren program yapımı.
Merhaba arkadaşlar..

Öncelikle başlıkla içerik arasında ufak bir uyumsuzluk olabilir çünkü bu yazımızda değişik bir işlem yapacağız. Sınav sorumuz ve gerçekten acayip bir problem olunca isimlendirmekte zorluk çektim doğrusu :)

Programımız kullanıcıdan bir sayı isteyecek ve girilen sayı basamaklarına ayrılıp basamak sırasına göre üssü alıp toplanacak. Kafanız karışmış olabilir örnekle daha da açıklayıcı olacaktır.

Örneğimizde girilen sayı 321 olsun. Sonuçumuz iste 3^2 + 2^1 + 1^1 dan 13 olacaktır. Umarım anlaşılmıştır.

Programımız main, us, hesapla isimlerinde 3 metoddan oluşacaktır.

us metodu

Recursive bir metoddur ve kendisine parametre olarak verilen tabanın yine kendisine parametre olarak verilen ussunu alır.
public static int us(int taban, int us){
if(us>=1)
return taban * us(taban,us-1);
return 1;
}

hesapla metodu

Kullanıcıdan aldığımız sayıyı bu metoda parametre olarak veriyoruz. Metodumuz gelen sayıyı basamaklarına ayırıp sayaça göre üssünü alıp toplamlarını döndürüyor.
public static int hesapla(int sayi){
int sonuc = 0,sayac=0;
while(sayi>10){
sonuc += us(sayi%10,sayac);
sayac++;
sayi = sayi / 10;
};
sonuc += us(sayi%10,sayac);
return sonuc;
}

main metodu

Kullanıcıdan sayı alma işlemini burada yapıyoruz. Eğer sayı değil de başka bir şey girilmişse hata mesajı verdirip tekrar sayı girmesini istiyoruz.
public static void main(String[] args) {
try{
int sayi;
System.out.print("Sayıyı giriniz : ");
Scanner scn = new Scanner(System.in);
sayi = scn.nextInt();
System.out.println("Sonuç : " + hesapla(sayi));
}catch(Exception ex){
System.out.println("Yanlış işlem yaptınız!");
main(null);
}
}

Unutmadan scanner classını kullanabilmek için classı projemize dahil etmemiz gerekmektedir.
import java.util.Scanner;

Etiketler : #üs, #java recursive, #scanner, #java scanner, #hesapla, #recursive, #üs alma, #java üs, #java, #özyineleme

Yorum Yap

Ad Soyad

E-Posta Adresi

Yorumunuz

Güvenlik Sorusu ( 3 + 6 = ? )

Yorumlar (0)

Henüz hiç yorum yapılmamış!
Belki de ilk yorumu sen yapmalısın ;)