编写一个函数,求一个正整数n的各位数字之和,并在主程序中测试该函数。

编写一个函数,求一个正整数n的各位数字之和,并在主程序中测试该函数。

def sum_of_digits(n):
    # 将整数转为字符串,再将每个字符转为整数,最后求和
    digits = [int(i) for i in str(n)]
    sum = 0
    for digit in digits:
        sum += digit
    return sum

n = int(input())
print(sum_of_digits(n))

img

img

img


def sum_digits(n):
    """
    计算一个正整数n的各位数字之和。
    """
    total = 0
    while n > 0:
        digit = n % 10
        total += digit
        n = n // 10
    return total

# 在主程序中测试
n = 12345
print("n的各位数字之和为:", sum_digits(n))

在上面的代码中,sum_digits函数使用了一个while循环来遍历n的每一位数字,并累加到变量total中。每次循环,通过求模运算(n % 10)获取最后一位数字,然后除以10(n // 10)来去掉最后一位数字。当n等于0时,表示所有数字都已经被遍历过了,此时函数返回total,即各位数字之和。

在主程序中,我们设置了一个变量n来代表需要求各位数字之和的正整数,然后调用sum_digits函数,并输出结果。在本例中,n的值为12345,所以函数返回的结果是15。

  • 这有个类似的问题, 你可以参考下: https://ask.csdn.net/questions/7607927
  • 除此之外, 这篇博客: 30.博客小案例功能升级——分页功能的实现中的 第二部分(实例化第n页对象&&第n页对象常用方法) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • # 实例化第n页对象
    page = paginator.page(1)     # 获取分页对象的第一页对象
    print(page)
    page2 = paginator.page(2)
    
    # 第n页的实例对象常用方法:
    print(page.object_list)      # 当前页的数据查询集(一个元素列表的形式)
    print(page.number)           # 第n页对象的页码值
    
    print(page.has_previous())   # 第一页对象是否有前一页
    print(page.has_other_pages())# 第一页对象是否有其他页
    print(page.has_next())       # 第一页对象是否有下一页
    print(page.next_page_number())# 第一页对象的下一页页码值
    print(page2.previous_page_number()) # 第二页对象的上一页页码值
    print(page.start_index())    # 第一页对象含有数据元素的开始索引值
    print(page.end_index())      # 第一页对象含有数据元素的结束索引值
    

    在这里插入图片描述

def sum_of_digits(n):
    # 将整数转为字符串,再将每个字符转为整数,最后求和
    digits = [int(i) for i in str(n)]
    sum = 0
    for digit in digits:
        sum += digit
    return sum
 
n = int(input())
print(sum_of_digits(n))

代码如上,如对您有帮助,请采纳!谢谢!