Ruby/Практикум/Числа: различия между версиями

Содержимое удалено Содержимое добавлено
м <source> -> <syntaxhighlight> (phab:T237267)
 
Строка 5:
'''Возможное(Рабочее для всех чисел) решение:'''
 
<sourcesyntaxhighlight lang=ruby>
print("Введите число: ")
s = gets.chomp
Строка 20:
end
STDIN.getc
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 27:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
class Fixnum
def is_narcissistic?
Строка 33:
end
end
p 153.is_narcissistic? #true</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 39:
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
puts "Введите 4х значное число, мы проверим его на число Армстронга"
 
Строка 54:
 
puts reply
</syntaxhighlight>
</source>
'''Замечания по решению:'''
Возможно не удачный выбор each_char, так как практикум по числам
Строка 60:
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
puts "Enter the number"
number = gets.chomp
Строка 75:
end
 
</syntaxhighlight>
</source>
 
'''Вариант возможного решения'''
<sourcesyntaxhighlight lang=ruby>
input = (Integer(gets.chomp)).to_s
summ = 0
Строка 88:
puts "The number #{input} is not a number of Armstrong."
end
</syntaxhighlight>
</source>
 
=== Идет k-я секунда года. Необходимо определить сколько полных месяцев и полных недель осталось до конца года. ===
Строка 94:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>k = 12312
s = 365*24*60*60
m = (s-k)/(30*24*60*60)
n = (s-k)/(7*24*60*60)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 106:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
k=12312345
temp=(28*12*24*60*60-k)/24/60/60
puts "#{temp/7/4} полных месяцев и #{temp/7%4} полных недель"
</syntaxhighlight>
</source>
 
По-моему этот код неправильный
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
tn = Time::now
p 12 - tn.month
p Time::new(tn.year, 12, 31).strftime("%W").to_i - tn.strftime("%W").to_i
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 125:
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
puts "Months: #{(31536000 - rand(1-31536000))/60/60/24/30}, weeks: #{(((31536000 - rand(1-31536000))/60/60/24) % 30)/7}"
</syntaxhighlight>
</source>
 
=== Даны два числа. Необходимо найти их среднее геометрическое. ===
Строка 133:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
print ("Введите первое число: ")
pc = gets.to_i
Строка 141:
print ("Среднее геометрическое равно #{sg}")
STDIN.getc #Ожидание ввода
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
print ("Введите значение x:")
x = gets.to_i
Строка 152:
y = gets.to_i
puts f = Math.sqrt(y * x) # присвоение избыточно, позволяет сохранить решение "про запас"
</syntaxhighlight>
</source>
'''Замечания по решению:'''
 
Строка 159:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
l = 0
while l != 6 do
Строка 179:
end
STDIN.getc
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 186:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
def is_lucky(x)
if x.to_s.size != 6
Строка 208:
x = gets
puts is_lucky(x.to_i)
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 214:
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
in_a = gets.chomp
if (in_a.length != 6)
Строка 224:
 
puts "Lucky number!" if (proc.call(in_a[1]) == proc.call(in_a[2]))
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 230:
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
happy = rand(111111..999999).to_s
arr = happy.split(//)
puts "Happy!" if arr[0].to_i + arr[1].to_i + arr[2].to_i == arr[3].to_i + arr[4].to_i + arr[5].to_i
</syntaxhighlight>
</source>
 
=== Дано трехзначное число. Необходимо проверить, образуют ли цифры этого числа возрастающую последовательность. ===
Строка 240:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
l = 0
while l != 3 do
Строка 264:
end
STDIN.getc
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 270:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
print "Enter number: "
str = gets
num = str.chop.split(//)
p num == num.sort
</syntaxhighlight>
</source>
 
'''Замечания по решению:''' Проверяет на неубывающую последовательность
Строка 283:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
ch = 513
while ch < 1 || ch > 511 do
Строка 344:
end
STDIN.getc
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 351:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
puts "Введите натуральное число меньше 512"
flag = true
Строка 376:
end
 
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 383:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
def lucky_bin(x)
y = sprintf("%b", x)
Строка 406:
x = gets
puts lucky_bin(x.to_i)
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 413:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
print 'Введите число (0 < x < 512], х='
x = gets.to_i #пользователь вводит Х
Строка 442:
end
end
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 448:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby> val = gets.to_i;
return false if val > 512 || val <= 0
Строка 455:
s = 0
bin_str.each_char.with_index{ |c, i| s += i > bin_str.size/2 ? c.to_i : -c.to_i }
puts bin_str + " is unlucky?" + (s==0).to_s</sourcesyntaxhighlight>
'''Замечания по решению:'''
 
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
a = gets.chomp
exit if (a.to_i >= 512) or (a.to_i <= 1)
Строка 470:
end
puts lf_a == pr_a ? "Da" : "Net"
</syntaxhighlight>
</source>
'''Замечания по решению:'''
 
Строка 477:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
print("Введите координату по оси X: ")
x = gets.to_f
Строка 486:
printf("%5.2f", c)
STDIN.getc
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 494:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
print("Введите значение коэффициента A: ")
a = gets.to_f
Строка 504:
STDIN.getc
 
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 513:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
l = 0
while l != 3 do
Строка 538:
STDIN.getc
 
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 545:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>n=321
m1=n.to_s.split(//)
p m1==m1.sort.reverse</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 556:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>c = 26
while c < 999 || c > 9999 do
print("Введите четырёхзначное число [1000..9999]:")
Строка 584:
end
STDIN.getc</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 591:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
n=1524
m=n.to_s.split(//)
p m.uniq==m
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 602:
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
b = 1234
b = b.to_s.split(//)
Строка 611:
end
puts "В числе нет совпадающих цифр" if b == b.uniq
</syntaxhighlight>
</source>
=== Даны координаты двух полей шахматной доски. Необходимо определить, имеют ли эти поля одинаковый цвет. ===
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
puts 'Введите координаты первого поля: '
x1 = gets.to_i
Строка 630:
end
STDIN.getc
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 636:
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
def color(n) #функция для определения цвета клетки шахмотного поля
axis = n.split('') #полученное от юзера значение разбивается на массив, содержащий в первой ячейке букву, второй - цифру
Строка 664:
puts 'цвета разные'
end
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
def to_num (sym) #Возвращает численное выражение координаты
('a'..'h').to_a.index(sym)
Строка 678:
puts 'Input y2'; y2 = gets.to_i
puts (x1 + y1).even? == (x2 + y2).even? #Сумма двух численных координат черных полей будет четной.
</syntaxhighlight>
</source>
'''Замечания по решению:'''
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
puts "Введите координаты первой клетки"
x1 = gets.chomp
Строка 690:
a = x2[0].ord + x2[1].ord
puts a.even? == b.even? ? "Да у них один цвет" : "Нет их цвета разные"
</syntaxhighlight>
</source>
'''Замечания по решению:'''
 
Строка 697:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
c = 26
while c < 100 || c > 999 do
Строка 728:
STDIN.getc
 
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 734:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
n = 311
n = n.to_s.split(//)
p (n.size == n.uniq.size)? "Sredi cifr dannogo chisla net odinakovih" : "Sredi cifr dannogo chisla est odinakovie"
 
</syntaxhighlight>
</source>
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
a = 464
a = a.to_s.split(//)
Строка 750:
puts "Число #{k} повторяется #{v} раз" if v > 1
end
</syntaxhighlight>
</source>
'''Замечания по решению:'''
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
num = gets.to_i.to_s.split(//)
if num != num.uniq then
Строка 761:
puts "It have not same numbers."
end
</syntaxhighlight>
</source>
'''Замечания по решению:'''
 
Строка 768:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
ch = 513
while ch < 0 || ch > 256 do
Строка 827:
STDIN.getc
 
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 833:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
puts "Vvedite naturaqlnoe chislo < 256"
flag = true
Строка 850:
end
p sum
</syntaxhighlight>
</source>
 
 
Строка 857:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
while(1)
puts "Vvedite naturaqlnoe chislo < 256"
Строка 874:
end
puts "summa nechotnux bit: #{sum}"
</syntaxhighlight>
</source>
 
 
Строка 880:
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
number = 65
p (number & 1) + (number & 4) / 4 + (number & 16) / 16 + (number & 64) / 64 if number >= 0 and number < 256
</syntaxhighlight>
</source>
'''Замечания по решению:'''
У меня программа выдает не правильный результат. Тут явно ошибка!
Строка 889:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
num = (rand(254) + 1)
num = num.to_s(2).split(//).reverse!
Строка 897:
end
puts result
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 905:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
h=k/3600
m=k%60
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 916:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
print("Vvedite tseloe chislo: ")
c = gets.to_f.round.to_i
Строка 925:
end
STDIN.getc
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 932:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>n[0].zero?</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 939:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
p (n.even?)? "Even":"Odd"
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 948:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
number = 42
p (number & 1).zero?
</syntaxhighlight>
</source>
 
=== Даны три числа. Необходимо найти их среднее геометрическое. ===
Строка 957:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
print ('Vvedite I chislo: ')
pc = gets.to_i
Строка 968:
STDIN.getc
 
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 976:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>((i1-i2)!=0)&&((j1-j2)!=0)&&((i1-i2).abs+(j1-j2).abs == 3)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 985:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x1, x2, y1, y2 = 1, 2, 3, 4
p( ((x1 == x2-2) && (y1 == y2-1)) ||
((x1 == x2+2) && (y1 == y2-1)) ||
Строка 993:
((x1 == x2-1) && (y1 == y2+2)) ||
((x1 == x2+1) && (y1 == y2-2)) ||
((x1 == x2+1) && (y1 == y2+2)) )</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1000:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x1,y1,x2,y2=1,5,3,6
p Math.sqrt((x1-x2)**2+(y1-y2)**2)==Math.sqrt(5)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
 
'''Возможное решение:'''
<sourcesyntaxhighlight lang=ruby>
 
puts 'Input first coordinate (c4:)' ; cFirst = gets.chomp
Строка 1017:
puts [8, 12, 19, 21].include?(yourMovie) #десятки это вертикали а единицы горизонтали
 
</syntaxhighlight>
</source>
'''Замечания по решению:'''
 
Строка 1024:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
print("A = ")
a = gets.to_f
Строка 1048:
end
STDIN.getc
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1054:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
puts 'A*X2 + B*X + C = 0'
puts 'A = ?'; a = gets.to_f
Строка 1067:
puts "Don`t have sqares! (D < 0)"
end
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1075:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
l = 0
while l != 4 do
Строка 1096:
STDIN.getc
 
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1103:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>a=5234
puts ((a.to_s[0].to_i+a.to_s[1].to_i)==(a.to_s[2].to_i+a.to_s[3].to_i))</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1112:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x1,x2,x3,y1,y2,y3 = 1,2,4,2,3,5
a = (x1+y1)[0]
b = (x2+y2)[0]
c = (x3+y3)[0]
(a == b)&&(b == c)&&(c == a)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1124:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x1,x2,x3,y1,y2,y3=1,4,2,7,4,6
p (x1+x2+y1+y2)[0]==(x1+x3+y1+y3)[0]</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1132:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
#Координаты в виде строки ('a1','c4'). На любое количество полей!
def to_num(c)
Строка 1145:
crds.map! { |c| c.even? }
puts crds.uniq.size == 1 ? 'Same color' : 'Different color'
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1153:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>d=(b**2)-(4*a*c)
t1=-b+Math.sqrt(d)
t2=-b-Math.sqrt(d)
Строка 1159:
x2=Math.sqrt(t1)
x3=-Math.sqrt(t2)
x4=Math.sqrt(t2)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1168:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>a = 2; b = 4; c = 8
d = b**2 - 4*a*c
t1 = (-b + Math.sqrt(d)) / (2*a)
Строка 1175:
x2 = Math.sqrt(t1);
x3 = -Math.sqrt(t2);
x4 = Math.sqrt(t2);</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1186:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>a = 12345
b = a%10
c = a/10%10
Строка 1192:
e = a/1000%10
f = a/10000
f*10000 + e*1000 + d*100 + c*10 + b</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1200:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
s=12345
s.to_s.reverse.to_i
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
<sourcesyntaxhighlight lang=ruby>
n = 12345
m = 0
Строка 1214:
end
n = m
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1223:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x = 63517
a = x/10000
b = x/1000 - a*10
Строка 1229:
d = x/10 - (a*1000 + b*100 + c*10)
e = x - (a*10000 + b*1000 + c*100 + d*10)
p( (a < c)&&(c < e) )</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1235:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>a=12243
p (a/10000<a/100%10)&&(a/100%10<a%10)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1242:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
odd = x.to_s.split(//).select.with_index { |elem, i| elem if i.even? }
p odd == odd.sort
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1254:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
x = 15341
p x / 100 < x % 1000 ? x % 1000 < (x % 10) * 100 : false
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1265:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>(x[0]==x[4])&&(x[1]==x[5])&&(x[2]==x[6])&&(x[3]==x[7])</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1271:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
n=123
p (n/16==n%16)? "Yep":"No"
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1281:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
n = 68
p n >> 4 == n - ((n >> 4) << 4)
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1292:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x = 1234
a = x/1000
b = x/100%10
c = x%100/10
d = x%10
a==b || b==c || c==d || a==d || b==d || a==c</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1304:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
x = 1652
p x.to_s.split("")!=x.to_s.split("").uniq
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1317:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
ch = 513
while ch < 0 || ch > 256 do
Строка 1377:
 
 
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1386:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
a = 125
a = a.to_s(2).split(//)
Строка 1394:
end
p sum
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1400:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>s=129
p 64*s[6]+16*s[4]+4*s[2]+s[0]
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1408:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>num= gets
bin= sprintf("%b", num).to_s.split(//).reverse
index= 1 # 0 - nechetnie
Строка 1419:
end
puts sum
STDIN.getc</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1427:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>a,b,c = 1,-4,1
d = b**2 - 4*a*c
z1 = (-b-Math.sqrt(d))/(2*a)
Строка 1435:
x3 = Math.sqrt(z2)
x4 = -Math.sqrt(z2)
p x1,x2,x3,x4</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1443:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>A,B,C=1,-7,12
p C</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1452:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x = 14
(x[0] == x[3]) && (x[1] == x[2])</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1459:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x = 15
p( (x[0]==x[3])&&(x[1]==x[2]) )</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1467:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>a=9.to_s(2)
p a==a.reverse</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1476:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x1, x2, y1, y2 = 1, 2, 3, 4
p( (x1-x2).abs == (y1-y2).abs )</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1485:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
a=3
b=4
c=6
p (a+b+c)/3.0</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1498:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x = 121
a=x/100; b=x/10%10; c=x%10
p ((b==a)&&(b!=c)&&(c!=a))||((b==c)&&(b!=a)&&(c!=a))||((a==c)&&(a!=b)&&(c!=b))</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1507:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x = 911
a = x/100
b = x/10%10
c = x%10
p( ((a==b)&&(a!=c)&&(b!=c))||((b==c)&&(a!=c)&&(a!=b))||((a==c)&&(a!=b)&&(b!=c)) )</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1518:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
n=121
p n.to_s.split(//).uniq.size == 2
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1529:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>a = 1234
b = a%10
c = a/10
Строка 1536:
g = d%10
m = d/10
(m + g) == (e + b)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1545:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>d=3214
a=d/1000
b=d/100-a*10
c=d/10-(a*100+b*10)
r=d-(a*1000+b*100+c*10)
a+b==c+r</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1558:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>m=123
a=m/100
b=(m-a*100)/10
c=(m-a*100-b*10)
p (c*100)+(b*10)+a</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1568:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>d=123
a=d/100
b=d/10-a*10
c=d-(a*100+b*10)
c*100+b*10+a</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1578:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
n=123
p n.to_s.reverse.to_i
</syntaxhighlight>
</source>
 
=== Дано четырехзначное целое число. Необходимо проверить, является ли оно палиндромом. ===
Строка 1587:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>n = 1234
a = n/1000
b = (n/100)%10
c = (n/10)%10
d = n%10
(a == d) && (b == c)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1598:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x=1234
a=x/1000
b=x/100-a*10
c=x/10-(a*100+b*10)
d=x-(a*1000+b*100+c*10)
(a==d)&&(b==c)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1609:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
n = 1221
p (n.to_s.split(//)==n.to_s.split(//).reverse)? "da" : "net"
</syntaxhighlight>
</source>
 
'''Замечания по решению:''' Здесь можно и без ''.split(//)''.
Строка 1620:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>x=165
( x[0]+x[1]+x[2]+x[3] ).eql?( x[4]+x[5]+x[6]+x[7] )</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1627:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>a=255
a[0]+a[1]+a[2]+a[3] == a[4]+a[5]+a[6]+a[7]</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1636:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>a=1
b=5
c=10
p (a>b)&&(b>c)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1645:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
a, b, c = 7, 5, 1
p [a,b,c] == [a,b,c].sort.reverse
</syntaxhighlight>
</source>
[[Участник:BlindMan|BlindMan]] ([[Обсуждение участника:BlindMan|обсуждение]]) 18:46, 25 сентября 2012 (UTC)
 
Строка 1655:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>d = 324156
a = d/100000
b = d/10000 - a*10
Строка 1662:
f = d/10 - (a*10000 + b*1000 + c*100 + e*10)
g = d - (a*100000 + b*10000 + c*1000 + e*100 + f*10)
p(d == g*100000 + f*10000 + e*1000 + c*100 + b*10 + a)</sourcesyntaxhighlight>
'''Замечания по решению:'''
Решение без фантазии
Строка 1668:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
num = 123456
tmp = num
Строка 1677:
end
p (num == rev)? "Палиндром":"Не палиндром"
</syntaxhighlight>
</source>
'''Замечания по решению:'''
Каноническое решение для числа произвольной длины при запрете на приведение к строке.
Строка 1683:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>a = 134431
p a == a.to_s.reverse.to_i
</syntaxhighlight>
</source>
 
'''Замечания по решению:'''
Строка 1694:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>n = 12345
a = x/10000
b = x/1000%10
Строка 1700:
d = x%100/10
e = x%10
a==e || b==d</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1708:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>((a==b)or(b==c)or(c==a))</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1717:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>(a==b)||(b==c)||(c==a)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1725:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>k,n,h=2,3,2
a=[k,n,h]
puts 'YES' if a!=a.uniq</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1735:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>a,b = 3,2
Math.sqrt(a**2 + b**2)</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1744:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>n = 70000
x = 24*3600
t = x-n
h = t/3600
m = t%3600/60
p h.to_s + ':' + m.to_s</sourcesyntaxhighlight>
 
'''Замечания по решению:'''
Строка 1755:
'''Возможное решение:'''
 
<sourcesyntaxhighlight lang=ruby>
n=5040
last=86400-n
p "#{last/3600} ч. #{(last%3600)/60} мин."</sourcesyntaxhighlight>
 
'''Замечания по решению:'''