a = gets.to_i
d = []
a.times do |t|
d[t] = []
b = gets.to_i
if b < 4
b = (1..b).inject { |s, z| s * z }.to_s
d[t] = b.split('')[0]
elsif b == 4
b = (1..b).inject { |s, z| s * z }.to_s
tmp = b.split('')
d[t] = [tmp[0], tmp[1]]
elsif b == 5
b = (1..b).inject { |s, z| s * z }.to_s
tmp = b.split('')
d[t] = [tmp[1], tmp[2]]
elsif b > 5 && b < 10
c = (1..(b-1)).inject { |s, z| s * z }.to_s.split('')
c.pop
e = c.pop
tmp = (e.to_i * b.to_i).to_s.split('')[1]
d[t] = [tmp, '0'].flatten
elsif b >= 10
d[t] = ['0', '0']
end
end
d.each_index do |i|
if !d[i].nil? && d[i].size == 2
2.times do |t|
print d[i][t].to_i
print " " if t.zero?
end
else
print "0 ", d[i][0].to_i
end
print "\n" if i < d.size - 1
end
Wykorzystałem dwie zależności występujące w silni, pierwsza dotyczy liczb z przedziału 6 do 9 a druga dotyczy liczb większych od 10 włącznie.
Program przetestowałem i zwraca dobre wyniki a SPOJ zwraca bÅÄ d wykonania (NZEC) .
created
last reply
- 1
reply
- 1.0k
views
- 2
users
- 2
links