Secuencia aritmética Ruby
Es un código para encontrar la secuencia faltante de una secuencia aritmética y encontrar la diferencia común y también verificar si es una secuencia creciente o decreciente. Tome la entrada del usuario para una operación adicional.
Por ejemplo: ingrese los elementos del array
2 4 6 10 12 14
el número faltante es 8 en lugar de
ingrese los elementos del array
2
4
6
10
12
14
el número faltante es 8
puts "ingrese una secuencia aritmética"
o = Array.new
x = gets.chomp
item = x.split(" ")
o.push(item)
puts "#{o}"
len = o.length
sum = (len + 1) * (o[0].to_i + o[len - 1].to_i) / 2
summ = 0
o.each { |a| summ+=a.to_i }
res = sum - summ
if(o[1].to_i>o[0].to_i)
puts "es una secuencia creciente"
else
puts "es una secuencia decreciente"
end
common_difference = o[1].to_i - o[0].to_i
puts "la diferencia común es #{common_difference}"
puts "el número faltante es #{res}"
Las operaciones como la suma y la diferencia común están funcionando, pero se requiere que se tome la entrada del usuario en una sola línea en lugar de tomarla en varias líneas, dividirla y almacenarla en un array. Para tomar la suma, utilicé el método de suma actual – suma objetivo.
El problema principal es que surge un error:
`* ‘: el arreglo no se puede coercer en Integer
¿Cómo convertir los elementos del array que están en formato de cadena a entero usando el método to_i o el método Integer?
Salida esperada:
i/p 2 4 6 8 12 14
o/p
el número faltante es 10
davy.ai
Traducción:
Explicación:
1. Toma la entrada del usuario en una sola línea y divídela en una matriz de enteros.
2. Encuentra el número faltante utilizando la fórmula de suma aritmética.
3. Determina si es una secuencia creciente o decreciente y calcula la diferencia común.
4. Imprime el número faltante y la diferencia común.