Skip to content

Instantly share code, notes, and snippets.

@tangmae
Last active March 9, 2018 09:09
Show Gist options
  • Save tangmae/bb85b81cdce319ce472f1e9b28c1c7d4 to your computer and use it in GitHub Desktop.
Save tangmae/bb85b81cdce319ce472f1e9b28c1c7d4 to your computer and use it in GitHub Desktop.
def pi(num)
sum = 3
(1..num).each do |n|
dn = n*2
puts "(4.0/(#{dn} * #{(dn+1)} * #{(dn+2)}) * (#{(-1)**(n+1)}))"
sum += (4.0/(dn * (dn+1) * (dn+2)) * ((-1)**(n+1)))
end
return sum
end
def divider(num, divide)
if (num != 0)
print((num/divide).floor)
left = (num%divide) * 10
sleep(1)
divider(left, divide)
end
end
def divider_arr(num, divide, arr, time)
if (num != 0 && time < 5000)
arr << (num/divide).floor
left = (num%divide) * 10
time += 1
return divider(left, divide, arr, time)
end
return arr
end
def plus_arr(arr1,arr2)
bigarr_size = arr1.size() > arr2.size() ? arr1.size() : arr2.size()
ans = Array.new(bigarr_size, 0)
(0..bigarr_size-1).each do |d|
val1 = d >= arr1.size() ? 0 : arr1[d]
val2 = d >= arr2.size() ? 0 : arr2[d]
if d > 0
if ans[d] + val1 + val2 > 10
ans[d-1] += 1
ans[d] = (ans[d] + val1 + val2)%10
else
ans[d] += val1 + val2
end
else
ans[d] += val1 + val2
end
end
return ans
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment