你能解释一下这个循环是如何工作的吗?第一个循环之后和第二个循环之后发生了什么等等。
def sum(n):
s = 0
while n:
s += n % 10
n /= 10
return s
>>> print sum(123)
6
你能解释一下这个循环是如何工作的吗?第一个循环之后和第二个循环之后发生了什么等等。
def sum(n):
s = 0
while n:
s += n % 10
n /= 10
return s
>>> print sum(123)
6
所以基本上,我们在这个算法中所做的是,我们从数字的最低有效位一次取一个数字,并将其添加到我们的 s (这是总和变量)中,一旦我们添加了最低有效位,然后我们将其删除并一次又一次地执行上述操作,直到数字保持为零,所以我们如何知道最低有效位,只需将 n 的余数除以 10,现在我们如何删除最后一位(最低有效位),我们只是将它除以 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
n > 0
在 Python 中可以简单地写成,n
但我认为这对初学者来说是不好的做法
int main()
{
int t;
cin>>t;
cout<<floor(log10(t)+1);
return 0;
}
输出
254
3