5.00 / 1 oy

Java'da tek basamaklı kalıncaya kadar basamak toplamı yapan program

Kısa bir süre önce Java'da bir sayının basamakları toplamını bulmak sorusunu yazarken bu soru da aklıma gelmişti. Zaman darlığından bu problemi çözmek de bugüne kaldı. Algoritma şu şekilde çalışacak.

1. Kullanıcı bir tamsayı yazacak (birkaç basamaklı)

2. Java, bu sayının basamaklarını toplayacak. Eğer sonuc halen 1 basamaklı değilse yine toplamını alacak, bu işlem, sonu. tek basamaklı oluncaya kadar devam edecek. Bu işleme dip toplam diyelim.

3. Her bir dip toplam işleminde de kaçıncı kez tekrar toplam işlemi almakta olduğunu çıktı alacak.

Örnek: 7.938.765 -> Basamakları toplamı: 45 halen çift basamaklı -> 4+5=9

Bu sefer ikinci bir değişken kullanmayalım ve basamak toplama işlemini de bir metod olarak hazırlayalım.

Not: Kullanıcının gireceği değer büyük olsun diye bu sefer int yerine double olarak tanımlayalım.

Kodlar:

public static void main(String[] args) {
	
	Scanner girdi = new Scanner(System.in);
	System.out.println("Lütfen bir tamsayı yazın");
	int sayac=1;
	double sayi = girdi.nextDouble();

	while (sayi!=0 && sayi>9)
	{
		sayi=basamakTopla(sayi);
		System.out.println(sayac+". toplam = "+(int)sayi);
		sayac++;
	}
	
	System.out.println("Yazdığınız sayının basamakları toplamı = "+(int)sayi);
	
}
    
public static double basamakTopla(double sayi)
{
	int toplam=0;
	while (sayi != 0) {
	    toplam += sayi % 10;
	    sayi=sayi/10;
	}
	return toplam;
}

Çıktı:

Lütfen bir tamsayı yazın
> 999999999999999
1. toplam = 137
2. toplam = 11
3. toplam = 2
Yazdığınız sayının basamakları toplamı = 2

utku33

18.02.2020 00:41

Bu soru 2 kez yanıtlandı.

Bu soruya sadece kayıtlı kullanıcılar yanıt yazabilirler. Yanıt yazmak için lütfen giriş yapınız.

Reitix
Java'da tek basamaklı kalıncaya kadar basamak toplamı yapan program

İnternet sitemizdeki deneyiminizi iyileştirmek için çerezler kullanıyoruz. Bu siteye giriş yaparak çerez kullanımını kabul etmiş sayılıyorsunuz. Daha fazla bilgi.