求和一个数字的所有数字的算法

能否请您向我解释此循环的工作原理?第一次循环后和第二次循环后发生了什么,等等。

def sum(n):
  s = 0
  while n:
    s += n % 10
    n /= 10
  return s

>>> print sum(123)
6
qingfenglvshui 回答:求和一个数字的所有数字的算法

因此,基本上,我们在此算法中所做的工作是,一次从数字的最低有效位取一位,然后将其加到s中(这是sum变量),并且一旦添加了最低位有效数字,然后我们将其删除并一次又一次地执行上述操作,直到数字保持为零为止,因此,我们如何知道最低有效数字,只需将n除以10,就可以得到n的余数,是否要删除最后一位(最低有效数字),我们将其除以10,所以就到这里了,如果无法理解,请告诉我。

,
def sum(n):
  s = 0
  while n:
    s += n % 10
    n /= 10
  return s

最好用这种方式重写(更易于理解):

def sum(n):
  s = 0 // start with s = 0 
  while n > 0: // while our number is bigger than 0
    s += n % 10 // add the last digit to s,for example 54%10 = 4
    n /= 10 // integer division = just removing last digit,for example 54/10 = 5
  return s // return the result
Python中的

n > 0可以简单地写为n 但我认为这对初学者来说是不好的做法

,
  int main()
  {
     int t;
     cin>>t;
     cout<<floor(log10(t)+1);
     return 0;
  }

输出

254
3
本文链接:https://www.f2er.com/2861290.html

大家都在问