Şimdi Ara

Java kodu için yardım

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
11
Cevap
0
Favori
520
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Selamlar, amacım girilen sayının palindrom sayı olup olmaması. Acaba nerede yanlış yaptığımı ve doğrusunun nasıl olduğunu anlatabilir misiniz?


    // Girilen sayının palindrom olup olmadığını belirler

    package ödev;

    import java.util.Scanner;


    public class Palindrome {

    public static void main(String args[]) {

    Scanner scan = new Scanner(System.in);
    Integer palindromSayi1 = scan.nextInt();
    scan.close();

    int palindromSayi2 = 0;

    while(palindromSayi1 !=0) {
    int digit = palindromSayi1 % 10;
    palindromSayi2 = palindromSayi2 * 10 + digit;
    palindromSayi1 /= 10;
    }


    //String s1=String.valueOf(palindromSayi1);
    //String s2=String.valueOf(palindromSayi2);

    System.out.println(palindromSayi2);

    if(palindromSayi2!=palindromSayi1) {
    System.out.println(palindromSayi1+" sayısı palindrom değil.");
    }
    else {
    System.out.println(palindromSayi1+" sayısı palindrom.");
    }
    }
    }








  • Çözüldü mü bilmiyorum ama çözümü paylaşıyorum

    Java kodu için yardım



    < Bu mesaj bu kişi tarafından değiştirildi Kalkon -- 16 Ağustos 2020; 8:48:46 >
  • Çözümünüz için teşekkür ederim. Yazdığınız kod için palindrom olmayan sayı girildiğinde "..palindrom değil","..palindrom" yazıyor. Ben de "break;" ve en aşağıdaki if bloğunu silerek, ondan önceki if bloğuna else ekleyerek yeniledim ve çalışıyor. Kolay gelsin.


    public class Palindrome {

    public static void main(String[] args) {

    Scanner scan = new Scanner(System.in);

    Integer palindromSayi1 = scan.nextInt();
    scan.close();
    int yedek = palindromSayi1;

    while(palindromSayi1.toString().length() > 1) {

    int kalan = palindromSayi1 % 10;

    palindromSayi1 -= kalan;

    int ilk = palindromSayi1 / (int) Math.pow(10, palindromSayi1.toString().length()-1);

    palindromSayi1 -= ilk * (int) Math.pow(10, palindromSayi1.toString().length()-1);

    palindromSayi1 /= 10;

    if(kalan==ilk) {

    System.out.println(yedek+" sayısı palindrom.");


    }else {
    System.out.println(yedek+" sayısı palindrom değil.");
    }
    }

    }
    }




  • Valkyrie14 V kullanıcısına yanıt
    Aynen o kısmı atlamışım dediğiniz gibi de olabilir ama o durumda birçok kez palindrom diye yazacaktır o nedenle an mantıklı çözüm if bloğunun içine palindromSayi1 = yedek şeklinde ekleme yapmak herhalde en son halini ekliyorum

    Java kodu için yardım
  • 15-20 satırda çözdüğünüz şey Raku da tek satırda çözülebiliyor:

    Java kodu için yardım

    < Bu ileti mini sürüm kullanılarak atıldı >
  • Evet ama dillerin genellikle kullanım alanları birbirinden farklı olabiliyor. Yukarıdaki problem Python ile daha basit şekilde de yazılabilir. Zaten o örneği de Java'da kendimi bir aşama daha katetmek için sormuştum. İlginiz için teşekkür ederim .
  • Valkyrie14 V kullanıcısına yanıt
    Yukardaki 20+ satırlık çözüm, palindrom problemi için fazla karışık. Java 8 ile fonksiyonel stilde veya Java 7 ile rekürsif stilde cok daha açık çözüm üretilebilir. Örneğin altta rekürsif stilde çözüm hem cok net hem de sadece sayı değil sözcüklerde de palindromu test edebiliyor.

    Java kodu için yardım

    < Bu ileti mini sürüm kullanılarak atıldı >
  • quote:

    Orijinalden alıntı: Tuğkan-0153

    15-20 satırda çözdüğünüz şey Raku da tek satırda çözülebiliyor:

    Kod

    Yığını:
    public static void main(String[] args) { String str = new Scanner(System.in).next(); System.out.println(IntStream.range(0, str.length() / 2).noneMatch(i-> str.charAt(i) != str.charAt(str.length() - i - 1)) ? "Palindrom" : "Palindrom Degil"); }

    Java kodu için yardım 





  • The_eXXe kullanıcısına yanıt
    fonksiyonel stilde yazınca her kod kısalır.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.