Herkese merhaba.
Uzun bir aradan sonra yine birlikteyiz. Bugün math.pow metoduyla alakalı bir soru çözelim istedim. Böylece metodu daha rahat kullanabiliriz.
Math.pow metodunu, üslü sayıları hesaplamak istediğimizde kullanabiliriz. Yani;
NOT: Math. pow metodu genellikle double özellikte sonuçlar üretmek ister. Bu yüzden double sonuç beklemelisiniz. Örneğin;
Eğer sayıyı double olarak tanımlamasaydık hata verecekti. Sonucumuz:
Şimdi bizim sorumuza geçelim.
public class problem { public static void main(String[] args) { // TODO Auto-generated method stub int a,b,c,d; System.out.println("Problemi Sağlayan Sayı:"); for(int i=1000;i<10000;i++){ a=i/1000; //binler basamağı b=i/100-10*a; //yüzler basamağı c=i/10-100*a-10*b; //onlar basamağı d=i-(a*1000+100*b+10*c); //birler basamağını bulduk. if(i==Math.pow(a, a)+Math.pow(b,b)+Math.pow(c, c)+Math.pow(d, d)){ System.out.println(i); } } } }
- İlk olarak sayının basamak değerlerini tanımlıyoruz.
int a, b, c, d;
- Daha sonra for döngüsü ile bu sayı aralıklarında bulunan tüm sayıları inceleme fırsatı buluyoruz.
for ( int i=1000; i<10000; i++)
- Basamak değerlerini bulmak için gerekli kodları oluşturuyoruz.
Binler basamağı için; a = i / 1000;
Yüzler basamağı için; b = i / 100 – 10 * a
Onlar basamağı için; c = i / 10 – 100 * a – 10 * b
Birler basamağı için;
d = i – ( a * 1000 + b * 100 + c * 10 )
- Bir sonraki adımda if kullanarak problemimizdeki koşulu sağlayıp, sağlamayan sorularımızı belirleyeceğiz.
if (i == Math. pow( a, a ) + Math. pow( b, b ) + Math. pow( c, c ) + Math. pow( d, d ))
- Son olarak da koşulu sağlayan sayıyı konsola yazdırıyoruz.
System. out. println ( i )
Bu şekilde tamamlamış olduk programımızı. Çıktımız:
Bir soruyu daha geride bıraktık. Bir sonraki sorumuza görüşmek üzere… İyi çalışmalar 🙂
Leave a Reply