-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSayiCozumleyici2.java
More file actions
83 lines (58 loc) · 3.23 KB
/
Copy pathSayiCozumleyici2.java
File metadata and controls
83 lines (58 loc) · 3.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/*
Dışarıdan girilen bir tamsayı değişkeni için girilen değerdeki hem tek hem de çift rakamların toplamını;
girilen sayının basamak sayısını ve tek rakamlar toplamı ile çift rakamlar toplamı arasındaki mutlak farkı bulup
ekrana yazdıran programın kodu istenmektedir.
Bu yapay zekanın yardım etmesiyle yazdığım algoritma öbür algoritmaya kıyasla daha rahat okunabilir profesyonel bir yapı.
*/
import java.util.Scanner;
public class SayiCozumleyici2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Lütfen bir sayı giriniz.");
if (scanner.hasNextInt()) {
int sayi = scanner.nextInt();
AnalizSonucu sonuc = sayiCozumle(sayi);
System.out.println("Tek rakamlar toplamı: " + sonuc.tekToplam);
System.out.println("Çift rakamlar toplamı: " + sonuc.ciftToplam);
System.out.println("Tek ve Çift Rakamlar Toplamı: " + sonuc.toplam);
System.out.println("Tek ve Çift Rakamların Mutlak Farkı: " + sonuc.mutlakFark);
System.out.println("Basamak Sayısı: " + sonuc.basamakSayisi);
} else {
System.out.println("Lütfen bir tam sayı giriniz.");
scanner.next();
}
scanner.close();
}
static AnalizSonucu sayiCozumle(int sayi) { // Burada döndüreceğimiz değerin aslında class nesnesi olduğunu
// belirtiyoruz
AnalizSonucu sonuc = new AnalizSonucu(); // Nesne yarattık
int tekToplam = 0, ciftToplam = 0, count = 0, mutlakFark = 0, toplam = 0;
while (sayi > 0) { // Eğer değerler double olsaydı sonsuz döngüye girerdik
if ((sayi % 10) % 2 == 0) { // Son rakamı çift mi kontrol ediyor
ciftToplam += sayi % 10; // Çift ise ciftToplam değişkeniyle toplayıp ciftToplam değişkenine atıyor.
} else {
tekToplam += sayi % 10; // Çift değilse tekToplam değişkenine atıyor.
}
count++; // Kaç basamak olduğunu hesaplıyor.
sayi /= 10; // Hesapladığımız son rakamı atıyor.
}
toplam = tekToplam + ciftToplam; // Rakamlar toplamı
mutlakFark = tekToplam - ciftToplam; // Rakamların farkı
if (mutlakFark < 0) { // Rakamların farkının mutlağı
mutlakFark *= -1;
}
sonuc.tekToplam = tekToplam; // Bulduğumuz tek rakamlar toplamını AnalizSonucundaki değişkene atıyoruz
sonuc.ciftToplam = ciftToplam; // Bulduğumuz çift rakamlar toplamını AnalizSonucundaki değişkene atıyoruz
sonuc.toplam = toplam; // Bulduğumuz rakamlar toplamını AnalizSonucundaki değişkene atıyoruz
sonuc.mutlakFark = mutlakFark; // Bulduğumuz mutlak farkı AnalizSonucundaki değişkene atıyoruz
sonuc.basamakSayisi = count; // Bulduğumuz basamak sayısını AnalizSonucundaki değişkene atıyoruz
return sonuc; // yarattığımız nesneyi dönderiyoruz
}
}
class AnalizSonucu { // Boş kutumuz (değerler null değiller, default olarak atanıyorlar)
int tekToplam;
int ciftToplam;
int toplam;
int mutlakFark;
int basamakSayisi;
}