Hey I’m a noob at ruby so far but learning fast

Basically how could I create a loop

Instead of doing this :

op1 = ((num1%100)/10)

result1 = op1*num2

puts “#{result1}”

op2 = ((num1%1000)/100)

result2 = op2*num2

puts “#{result2}”

op3 = ((num1%10000)/1000)

result3 = op3*num2

puts “#{result3}”

op4 = ((num1%1000000)/100000)

result4 = op4*num2

puts “#{result4}”

op5 = ((num1%10000000)/1000000)

result5 = op5*num2

puts “#{result5}”

op6 = ((num1%100000000)/10000000)

result6 = op6*num2

puts “#{result6}”

op7 = ((num1%10000000000)/100000000)

result7 = op7*num2

puts “#{result7}”

op8 = ((num1%100000000000)/1000000000)

result8 = op8*num2

puts “#{result8}”

op9 = ((num1%1000000000000)/10000000000)

result9 = op9*num2

puts “#{result9}”

So that every time it puts in the zero like the example, but also

outputs the result. for the number of times the loop will happen i will

be using

nummultil = (num1 * num2).to_s.length

num1l = num1.to_s.length

Here is an idea trying not to stray too much from your code.

Modify it the way you want.

(1…9).each do |x|

p num2 * (num1%(10**(x+1))/(10**x))

end

Harry

# Fix the ‘max=10’ to fit what you need as maximun iterations count.

def lukas_loop(num1, num2)

max = 10 # I didn’t understand how you calculated the max

iteractions counting.

1.upto(max) do |n|

op = ((num1 % (10**(n+1))) / 10**n )

result = op*num2

puts “#{result}”

end

end

Is it something like this?

I worked it out I think

print "enter the first number: "

num1 = gets.chomp.to_i

print "enter the second number: "

num2 = gets.chomp.to_i

nummultil = (num1 * num2).to_s.length

num1l = num1.to_s.length

num1l.times do |n|

op = ((num1 % (10**(n+1))) / 10**n )

result = op*num2

puts “#{result}”

end

just like this it work

Thanks a lot

-lukas

Abinoam Jr. wrote in post #1125746:

# Fix the ‘max=10’ to fit what you need as maximun iterations count.

def lukas_loop(num1, num2)

max = 10 # I didn’t understand how you calculated the max

iteractions counting.

1.upto(max) do |n|

op = ((num1 % (10**(n+1))) / 10**n )

result = op*num2

puts “#{result}”

end

end

Is it something like this?

Ok you guys get the idea, but i need it to output every single time it

does the loop will the example you gave do that ?

Also i will be calculating the amount it loops by the .length of “num1”

so that it cycles through each of the digits and then multiplies each of

the digits by num2

Thanks a lot

-lukas

Edit: I tried your method but it doesn’t seem to work, it doesnt output

anything