digit_sum(num)
功能: 计算一个数的各个位数之和。
实现: 将数字转换为字符串,然后遍历每个字符,将其转换回整数并求和。
digit_product(num)
功能: 计算一个数的各个位数之积。
实现: 将数字转换为字符串,然后遍历每个字符,将其转换回整数并累乘。
custom_sum(sequence)
功能: 根据规则计算序列的和。
实现: 遍历序列中的每个数字,根据其奇偶性分别处理:
如果是奇数,计算其各个位数之和 (mi),如果 mi 是奇数,则将该数乘以 mi 加到总和中;否则,将该数除以 mi 加到总和中。
如果是偶数,计算其各个位数之积 (si),如果 si 大于该数,则将 si 加到总和中;否则,将该数加到总和中。
主程序
功能: 读取输入,调用 custom_sum 函数计算结果并输出。
实现: 从标准输入读取一个整数 n,表示序列的长度,然后读取 n 个整数作为序列,最后调用 custom_sum 计算并输出结果。
2. 使用示例
假设输入如下:
执行过程如下:
digit_sum(123) 返回 6(1 + 2 + 3)。
digit_product(456) 返回 120(4 * 5 * 6)。
digit_sum(789) 返回 24(7 + 8 + 9)。
对于序列 [123, 456, 789]:
123 是奇数,digit_sum(123) 为 6,因为 6 是偶数,所以结果是 123 // 6 = 20.
456 是偶数,digit_product(456) 为 120,因为 120 > 456,所以结果是 120.
789 是奇数,digit_sum(789) 为 24,因为 24 是偶数,所以结果是 789 // 24 = 33.
最终结果为 20 + 120 + 33 = 173。
3. 注意事项
确保输入的数字都是有效的整数。
注意整数除法与浮点数除法的区别,在 Python 中 // 表示整数除法。
当输入的序列长度为零时,程序应能正确处理并返回零。