Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
3
Cevap
305
Tıklama
0
Öne Çıkarma
Verilen bir sayının 'Happy Number' olup olmadığını bulmak
T
5 yıl
Yarbay
Konu Sahibi

< Resime gitmek için tıklayın >

Örneğin verilen sayı 49 :
 
# 49 -> 4 kare + 9 kare = 97
# 97 -> 9 kare + 7 kare = 130
# 130 -> 1 kare + 3 kare + 0 kare = 10
# 10 -> 1 kare + 0 kare = 1 (happy number)


1'e düştüğü için MUTLU

Verilen sayı: 89
 
# 89 -> 8 kare + 9 kare = 145
# 145 -> 1 kare + 4 kare + 5 kare = 42
# 42 -> 4 kare + 2 kare = 20
# 20 -> 2 kare + 0 kare = 4 (not happy number)


4 'e düştüğü için, 1'e düşmediği için MUTSUZ

Bu kritere göre verilen sayının mutlu olup olmadığını bulan kod yazınız.

DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.

Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.

Üye Ol Şimdi Değil



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

H
5 yıl
Binbaşı

print((lambda f: (lambda x: f(lambda v: x(x)(v)))(lambda x: f(lambda v: x(x)(v))))(lambda f: (lambda x: sum(list(map(lambda k:int(k)*int(k),list(x)))) if sum(list(map(lambda k:int(k)*int(k),list(x))))<10 else f(str(sum(list(map(lambda k:int(k)*int(k),list(x))))))))(input())==1)
2 satirda daha rahat oluyor. 1 satira indirmek icin fixed point combinator kullanmam gerekti.



G
5 yıl
Yarbay

(bool, int) MutluNumara(int sayi) => sayi != 1 && sayi.ToString().Length == 1 ? (false, sayi) : sayi == 1 && sayi.ToString().Length == 1 ? (true, sayi) : MutluNumara(sayi.ToString().ToList().Sum(z => (z - 48) * (z - 48)));
Console.Write(MutluNumara(Convert.ToInt32(Console.ReadLine())).Item1);
gibi



T
5 yıl
Yarbay
Konu Sahibi

Çözümler güzel fakat özellikle Python versiyonunu okumak biraz zor. Raku ile hem daha kısa ve okunabilir hem de Türkçe çıktı verecek şekilde 1 satırda yapılabiliyor:

< Resime gitmek için tıklayın >

2. satır, girilen degere kadar tüm mutlu sayıları diziyor. Ana fonksiyonu sub'a atıp bu iki satırı sadeleştirmek mümkün fakat uğraşmadım.





< Bu mesaj bu kişi tarafından değiştirildi Tuğkan-0153 -- 20 Eylül 2020; 12:14:0 >

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

DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.