Çok uğraştım ama yapamıyorum. Çözümü lazım bana.Sayının yan yana seçilen iki rakamı arasındaki farkın maksimum 1 olması gerekiyor.
(jumbled number = karışık sayı)
12 bir karışık sayı iken 13 değildir. (890 değilken 987 karışık sayıdır)
Buna göre girilen sayıyı string (metin) olarak düşünüp her harf için bir sonraki harf ile arasındaki farkı kontrol etmen gerekiyor. Son harf için de ekstra bir kontrol yaparak (sonrasında harf olmadığı için) sorunu çözebilirsin.
String olduğu için birbirinden çıkaramıyorum sayıları. İnteger'a da çeviremiyorum kafayı yiyeceğim.Sayının yan yana seçilen iki rakamı arasındaki farkın maksimum 1 olması gerekiyor.
(jumbled number = karışık sayı)
12 bir karışık sayı iken 13 değildir. (890 değilken 987 karışık sayıdır)
Buna göre girilen sayıyı string (metin) olarak düşünüp her harf için bir sonraki harf ile arasındaki farkı kontrol etmen gerekiyor. Son harf için de ekstra bir kontrol yaparak (sonrasında harf olmadığı için) sorunu çözebilirsin.
sayi = input("Bir sayı girin:")
a = 0
for x in sayi:
eski_a = a
a = x
if abs(int(a)-int(eski_a)) > 1:
exit()
print("jumbled")
Teşekkürler fakat eksi a kısmını tam anlayamadım. Açıklayabilir misiniz?Python:sayi = input("Bir sayı girin:") a = 0 for x in sayi: eski_a = a a = x if abs(int(a)-int(eski_a)) > 1: break print("jumbled")
Eksi a değil eski a. Yani bir önceki adımdaki a değeri.Teşekkürler fakat eksi a kısmını tam anlayamadım. Açıklayabilir misiniz?
x = "9876513"
print('jumbled' if reduce(lambda a,b: b if abs(int(a)-int(b)) <= 1 else 11, list(x)) != 11 else 'malesef :(')
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.