# Forum: Ruby Help with a loop

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
on 2013-10-27 02:35
```Hey I'm a noob at ruby so far but learning fast

Basically how could I create a loop

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```
on 2013-10-27 02:41
```>
>

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```
on 2013-10-27 08:51
```# 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?```
on 2013-10-27 15:31
```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```
on 2013-10-27 15:48
```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```
This topic is locked and can not be replied to.