0 like 0 dislike
2 views
in Bilgi Teknolojileri by anonymous Bilge (165k points)
reshown by
ruby string

1 Answer

0 like 0 dislike
by anonymous Bilge (165k points)
class String
def numeric?
!Float(self).nil?
rescue StandardError
false
end
end

def isNumeric(arr)
arr.each do |a|
return unless a.numeric?
end
end

def blockSize(arr)
b = true
arr.each do |a|
b = false if a.chars.size != 3
end
b
end

def is_even?(s)
t = 0
s.chars.each do |c|
t += c.to_i
end
t.even?
end

def is_odd?(x)
t = 0
x.chars.each do |c|
t += c.to_i
end
t.odd?
end

def checkBig(str)
b = true
str.chars.each do |s|
b = false if s.to_i > str.chars[2].to_i
end
b
end

def checkBlock(arr)
b = true
arr.each do |a|
b = false unless checkBig(a)
end
b
end

def stringChallenge(str)
arr = str.split('.')
if arr.size == 3
if isNumeric(arr)
puts 'Rule 1: Tamamı sayılardan oluşuyor'
if blockSize(arr)
puts "Rule 2: Sayı blokları 3'er basamaklı"
if is_even?(arr[0]) && is_odd?(arr[1])
puts 'Rule 3: İlk blok çift ikinci blok tek'
if checkBlock(arr)
puts "Rule 4: Her bloğun son rakamı en büyüğü"
else
puts "Exception 4 : Son rakam en büyük değil.."
end
else
puts 'Exception 3 : Çift/Tek kuralına uygun değil...'
end
else
puts 'Exception 2: 3 rakamı aşan blok var...'
end
else
puts 'Exception 1: Numeric değil...'
end
else
puts 'Exception 0: 3 bloktantan farklı bir dizi...'
end
end

stringChallenge('145.124.496')
En güncel teknolojiler hakkında yeni şeyler öğren, bilmediklerini sor, bildiklerini paylaş...

Categories

...