Я использовал итеративный подход для добавления всех цифр числа до тех пор, пока сумма не станет номером единицы. Мой код:Превышен лимит ошибок. Добавить цифры номера
def addDigits(self, num):
self.x=num
a=[]
sum=0
count=0
count1=0
p=0
while((self.x)/10>0):
while(self.x>0):
self.x=self.x/10
count=count+1
self.x=num
while(count>0):
if(count==1):
self.x=self.x%10
sum=sum+self.x
else:
self.x=self.x/(10**(count-1))
sum=sum+self.x
self.x=num
self.x=self.x%(10**(count-1))
count=count-1
self.x=sum
num=self.x
return self.x
Я получаю время превышена ошибке для ввода, где сумма> 10.Please предложить несколько способов решить эту проблему таким образом, чтобы правильно выход может быть там
К сожалению получило его забыл добавить сумму = 0 в конце – soul
use http://cs.stackexchange.com/ – martianwars
Принимая только это утверждение, чтобы сохранить его просто self.x = self.x/10, self.x никогда не будет равен или меньше нуль (если вы используете Python 3x), он будет очень-очень маленьким, поэтому у вас будет бесконечный цикл. Я бы предложил добавить счетчик цикла, напечатать self.x и счетчик и выйти из цикла после того, как счетчик достигнет некоторого разумного числа, например 100, чтобы проверить это. –