es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Traducción:

    puts "Ingresa la secuencia aritmética separada por espacios:"
    input = gets.chomp
    arr = input.split.map(&:to_i)
    
    len = arr.length
    sum = (len + 1) * (arr[0] + arr[len - 1]) / 2
    actual_sum = arr.reduce(:+)
    missing_num = sum - actual_sum
    
    if arr[1] > arr[0]
      puts "Es una secuencia creciente."
    else
      puts "Es una secuencia decreciente."
    end
    
    common_diff = arr[1] - arr[0]
    
    puts "\nNúmero faltante: #{missing_num}"
    puts "Diferencia común: #{common_diff}"
    

    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.

Comments are closed.