对于我的编程作业的一部分,我想做以下几点。 在级别1中,我有一个输入数字(N),它除以另一个数字(X)。在下一级别,相同的输入数字(N)除以X * 2。同样,我想继续计算,直到最终结果小于或等于1.
例如,如果在第一次运行中X = 8且N = 2,我将除以8/2 = 4 在下一次运行中,我将除以8/4,即2 在最后一次运行中,我将除以8/8,即1
我试图在python中实现它。我对代码的基本概念如下:
def myFunc(n, x):
first_level=n/ x
next_level = n /x * 2
............
if result <=1:
break
myFunc(8, 2)
但我不明白如何迭代计算可能的下一个级别。请帮忙。
答案 0 :(得分:1)
这是一个通过迭代执行此操作的示例函数!
这里的关键是设置一个临时变量来跟踪循环的当前值,从而允许你进行除法。
def myFunc(n, x):
i = 1
interim_result = n
while interim_result > 1:
interim_result = n / float(x**i) # I guess you're working with integers, but just in case
print "This is loop number: " + str(i) + " with result: " + str(interim_result)
i = i + 1
myFunc(8, 2)
希望这很清楚。
答案 1 :(得分:1)
您可以使用递归功能:添加打印以显示结果等于1.
def myFunc(n, x):
result=n/ x
if result <=1:
print result
else:
myFunc(n,x*2)
myFunc(8, 2)
或者要获得可以使用全局变量的级别:
count = 1
def myFunc(n, x):
global count
count = count + 1
result=n/ x
if result <=1:
print result
else:
myFunc(n,x*2)
myFunc(8, 2)
print count