因此,該函數將值減小爲單個數字的方式是在一個循環中連續添加一個值的數字,直到其值爲9或更小。問題進來時相加的兩個數位等同於10,其然後應進一步減少爲1將數字減少爲單個數字的Python函數
def rts(value):
VALUE_STR = str(value)
ANSWER = "0"
while value > 9:
value = int("0")
for ch in VALUE_STR:
ch = int(ch)
value += ch
ANSWER = str(value)
return ANSWER
值我不能真正顯示輸出加1 + 0次說,但是當我它打印出來,將陷入無限循環隨時它傳遞一個數字值,該值添加時等於10
實施例1:
9 + 1 = 10
開始無端環
實施例2:
6 + 4 = 10
開始無端環
它與其它數字
實施例1所述的方式:
9 + 7 = 16
6 + 1 = 7
ANSWER = 7
實施例2:
4 + 5 = 9
ANSWER = 9
這裏是爲需要類似功能的人提供固定代碼。
def rts(value):
VALUE_STR = str(value)
ANSWER = "0"
while value > 9:
value = int("0")
for ch in VALUE_STR:
ch = int(ch)
value += ch
ANSWER = str(value)
VALUE_STR = str(value)
return ANSWER
你不更新'環路(注意變量應該是'lowercase_with_underscores'),所以任何輸入,需要一個以上的一次通過循環將卡住內VALUE_STR' - 在使用例如看看http://www.pythontutor.com/visualize.html#mode=edit – jonrsharpe
你爲什麼要用絃樂來做這件事?甚至沒有解決效率問題,這只是數學上的嘗試 - 而且代碼會更清晰。什麼是'x/10'?什麼是'x%10'?在這種情況下,你會面臨>添加和測試9個結果? – zxq9
我這樣做將任何數字刪除到一個整數除以10將不會是一個整數。此外,爲了稍後在程序中使用的數字,簡單並不完全是目標。我不明白你的最後一個問題「你將面臨什麼情況?」添加和測試9個結果?「。如果你問我的方法什麼時候可以> 9,我給出了這個例子。至於你的方法,就像117/10 = 11.3一樣簡單,因此將需要再次除以10,這將被1.17舍入爲1.我的方法將在1 + 1 + 7 = 9的迭代中完成。 – leigon