Soru & Cevap

Java da dizi içerisinde palindrome sayı bulma

18.05.2020 - 07:24

random sayılarla içi doldurulan diziyi tarayarak dizi içerisinde bulunan palindrome sayıları indeks numaraları ile birlikte ekrana nasıl yazdırabilirim?String değişkenine atama yapılmadan!

 

      Random rand = new Random();
        
          int [ ] dizi = new int [10]; 

          int i,num;


          for (i = 0; i < dizi.length ; i++) {
              
              int max=2000;
              int min=10;
              num=rand.nextInt(max-min)+min;
              dizi[i] = num;
               
              System.out.print(dizi[i]+" ");
            }

 

671 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user csaldirim
csaldirim
18.05.2020 - 04:13

Merhaba,

Matematiksel olarak sayıyı basamaklarına ayırıp yapabilirsiniz.

import java.util.Random;

public class Palindrome{

     public static void main(String []args){
        Random rand = new Random();
        int [ ] dizi = new int [10]; 
        int i,num;
        
        for (i = 0; i < dizi.length ; i++) {
              
            int max=2000;
            int min=10;
            num=rand.nextInt(max-min)+min;
            dizi[i] = num;
               
            System.out.print(dizi[i]+" ");
        }
        
        /* Palindrome */
        System.out.print("\n");
        for(int index = 0; index < dizi.length; index++)
        {
            if(isPalindrome(dizi[index]))
            {
                System.out.printf("dizi[%d]: %d\n",index,dizi[index]);
            }
        }
  
    }
    
    static boolean isPalindrome(int num)
    {
        int reminder;
        int sum = 0;
        int temp = num;
        
        /* Verilen sayıyı basamaklarına ayırarak ters sırayla yeniden birleştiriyoruz */
        while(temp > 0){    
         reminder = temp % 10;  
         sum = (sum * 10) + reminder;    
         temp = temp / 10;
        }
        
        /* Verilen sayı ile basamak sıralarını tersine çevirdiğimiz sayı eişit ise palindromedur*/
        if(num==sum)    
         return true;    
        else    
         return false;
    }
}