Sayının Rakamlarını Toplamak Java
Bir sayımız var ve bu sayıların rakamları toplamını istiyoruz. Ama iki problemimiz var.
Nasıl yapabiliriz?
Java’da bir class yapısını kullanarak nasıl yapabiliriz?
*
Bu yazımızda bu soruların cevabını bulmaya çalışacağız.
*
Bu programımız classlarla çaşılacağız. Classlar ile çalışma mantığını bu yazımda anlatmıştım. (C’de Palindromik Sayı)
Girilen bir sayının rakamlarını nasıl toplatırız? Girilen bir sayının kaç haneli olduğunu bilirsek, örneğin 4 basamaklı bir sayı için 1000, 100, 10 ve 1 ‘e bölümünden kalanları toplayıp istenilen programı yapabiliriz. Ancak bir sorun var. Kullanıcıdan girilen sayının kaç basamaklı olacağını nasıl anlarız? Bu sorunun çözümü şu şekilde sayımızı 10 sayısına bölüp sonucu tekrar aynı değişkene atmak. Böyle yazmak biraz anlamsız gelebilir o yüzden yapacaklarımızı rakamhesapla adlı Class’ımızı yazdıktan sonra adım adım açıklayalım.
package rakamhesapla; /** * * @author BurakKutbay.com */ public class rhesapla { public int rakamhesapla(int a) { int c=0,sonuc=0; while(a>0) { sonuc=(a%10)+sonuc; // System.out.println(sonuc); a=a/10; } return sonuc; } }
10.satır: Bir döngümüz var ve bu döngümüz kullanıcı tarafından girilen sayının 0’a kadar azaltılmasına kadar devam edecek. Bu döngümüz neden a>0 ‘ kadar yazdık diğer adımlarda daha iyi pekişecektir.
11.satır: sonuc adlı değişkenimize a sayısının 10’a bölümünden kalanı atıp tekara sonuc adlı değişkenimizle topluyoruz. Yani girilen sayının rakamları toplanma işlemi burada yapılmaktadır.
Peki belli bir sınırımız olmalı. Bu işlem nereye kadar devam edecek. While döngümüzdeki bu şartı doğrulatmak ve bu döngüden nasıl çıkarız? Sayımızın kaç haneli olduğunu bilmediğimizden sayımızı 10’a bölerek bir basamak düşürmüş oluyoruz ve bu basamak düşültme işlemi 1’de son bulduktan sonra döngümüzden çıkacak.
Class’ımızda rakamlarını topladığımız sayıyı geri döndürüyoruz.
An programımız işe şu şekilde;
package rakamhesapla; import java.util.Scanner; /** * * @author BurakKutbay.com */ public class RakamHesapla { public static void main(String[] args) { System.out.println("Rakam Giriniz"); Scanner oku=new Scanner(System.in); rhesapla r=new rhesapla(); int deger=oku.nextInt(); System.out.println("Girdiğin rakamların toplamı : "+r.rakamhesapla(deger)); } }
No Comment! Be the first one.