Python 程序:查找数字各位数之和

在本节中,我们将讨论如何使用 While 循环、for 循环、函数和递归来编写 Python 程序以查找数字的各位数之和。

Python 程序:使用 While 循环查找数字的各位数之和

此程序允许用户输入任何正整数。然后,程序将给定数字分解为单独的数字,并使用 While 循环将这些单独的数字相加(求和)。

Number = int(input("Please Enter any Number: "))
Sum = 0

while(Number > 0):
    Reminder = Number % 10
    Sum = Sum + Reminder
    Number = Number //10

print("\n Sum of the digits of Given Number = %d" %Sum)
Python Program to find Sum of Digits of a Number using While Loop

此程序允许用户输入任何正整数,然后将该值赋给变量 Number。接下来,Python While 循环中的条件确保给定数字大于 0(表示正整数且大于 0)。

用户输入的用于此 Python 程序查找各位数之和的值为:Number = 4567 且 Sum = 0

第一次迭代

Reminder = Number%10
Reminder = 4567 % 10 = 7

Sum= Sum+ Reminder
Sum= 0 + 7 = 7

Number = Number/10
Number= 4567 / 10 = 456

程序:查找数字各位数之和的第二次迭代

从第一次Python迭代开始,Number= 456 且 Sum= 7

Reminder = 456 % 10 = 6

Sum= 7 + 6 = 13

Number= 456 / 10 = 45

第三次迭代:第三次迭代中,Number= 45 且 Sum= 13

Reminder = 45 % 10 = 5

Sum= 13 + 5 = 18

Number= 45 / 10 = 4

第四次迭代:对于第四次迭代,Number= 4 且 Sum= 18

Reminder= 4 % 10 = 4

Sum= 18 + 4 = 22

Number= 4 / 10 = 0

此时 Number= 0。因此,while 循环条件失败。

最后的打印语句将变量作为输出打印。因此,给定变量 4567 的输出是

Python 程序:使用 for 循环查找数字的各位数之和

此程序使用 for 循环范围。str() 函数将数字转换为字符串,len() 方法返回数字的总位数。这意味着 for 循环从第一位数字开始,一直遍历到最后一位数字。

num = int(input("Enter any Number = "))
tot = 0

for i in range(len(str(num))):
    tot += num % 10
    num //= 10

print("Total = ", tot) 

您也可以尝试下面所示的for 循环方法来计算各位数之和。

num = int(input("Enter any Number = "))
tot = 0

for char in str(num):
    tot += int(char)

print("Total = ", tot)

Python 程序:使用列表推导式计算各位数之和

请参考列表推导式map 函数文章。

num = int(input("Enter any Number = "))

tot = sum([int(i) for i in str(num)])

print("Total = ", tot)

使用 map 和 sum 函数

num = int(input("Enter any Number = "))

tot = sum(map(int, str(num)))

print("Total = ", tot)
using list comprehension

Python 程序:使用函数查找数字的各位数之和

程序中的各位数之和允许用户输入任何正整数。然后,程序将给定数字分解为单独的数字,并使用函数将这些单独的数字相加(求和)。

# using Functions

def sodCalc(val):
    total = 0
    while(val > 0):
        Reminder = val % 10
        total = total + Reminder
        val = val //10
    return total

val = int(input("Please Enter any Value: "))
total = sodCalc(val)
print("\n Sum of the digits of Given Value = %d" %total)
Python Program to Find Sum of Digits of a Number using Functions

在此程序中,当编译器遇到 sodCalc(val) 行时,它会立即跳转到下面的函数。

def sodCalc(val):

Python 程序:使用递归查找数字的各位数之和

此查找数字各位数之和的程序允许用户输入任何正整数。然后,它将给定整数分解为单独的数字,并通过递归调用函数将这些单独的数字相加(求和)。

tot = 0
def calcSOD(Num):
    global tot
    if(Num > 0):
        Reminder = Num % 10
        tot = tot + Reminder
        calcSOD(Num //10)
    return tot

Num = int(input("Please Enter any Value: "))
tot = calcSOD(Num)
print("\n Sum of the digits = %d" %tot)
Please Enter any Value: 456

 Sum of the digits = 15

在此程序中,当编译器遇到 Sum= calcSOD(Num) 行时,它会立即跳转到下面的函数。

calcSOD(Num):

在此函数中,以下语句有助于使用更新后的值递归调用函数。如果您忽略此语句,它将在完成第一行后终止。

calcSOD(Num //10)

对于此查找数字各位数之和的程序示例,Number= 4567 返回的输出为 7。

让我们来看一下If 语句

if (Num > 0),检查 num 是否大于 0。对于递归函数,在使用函数递归之前放置一个条件非常重要。否则,我们将陷入无限执行(与无限循环相同)。

递归示例 2

这是另一种使用递归查找数字各位数之和的方法。

def digitSum(n):
    if n == 0:
        return 0
    else:
        return n % 10 +digitSum(n // 10)


num = int(input("Enter a Number = "))

print("Total = ", digitSum(num))
Python Program to Find Sum of Digits of a Number using Recursion