📅  最后修改于: 2023-12-03 14:54:50.511000             🧑  作者: Mango
教资会网络 (UGC NET) 是由印度国家资格测试局 (National Testing Agency,NTA) 组织的全国级考试,旨在选拔和资格认证具有潜力和合格的印度教育界人才。UGC NET CS 2017 年 1 月至 2 日的第 13 题是考试中的一道编程问题。
给定一个正整数 n,编写一个函数来计算小于等于 n 的非零数字的总和。函数签名如下:
def compute_sum(n: int) -> int:
输入:
compute_sum(15)
输出:
45
要解决这个问题,我们可以将数字 n 拆分成个位、十位、百位等等。然后,我们将这些非零数字相加,即可得到总和。
以 15 为例,拆分数字:
1 * 10^1 + 5 * 10^0 = 10 + 5 = 15
拆分后的个位、十位数字都是非零数,所以总和为 1 + 5 = 6。
def compute_sum(n: int) -> int:
# 初始化总和为 0
total_sum = 0
# 从个位数开始拆分数字
while n > 0:
# 获取个位数
digit = n % 10
# 将非零数字相加
if digit != 0:
total_sum += digit
# 去掉个位数
n = n // 10
# 返回总和
return total_sum
sum = compute_sum(15)
print(sum) # 输出 6
请注意,以上的代码片段是使用 Markdown 标记的。