csp练习题:【题1】模拟法:各位相加
作者:野牛程序员:2023-07-03 20:20:02题目阅读 2814
csp练习题:【题1】模拟法:各位相加
【题1】模拟法:各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。返回这个结果。 示例 : 输入: num = 38 输出: 2 解释: 各位相加的过程为:(38 --> 3 + 8 --> 11)(11 --> 1 + 1 --> 2) 由于 2 是一位数,所以返回 2。
#include <iostream> // 函数用于计算各位相加的结果 int addDigits(int num) { while (num >= 10) { int sum = 0; // 对数字的每一位进行相加 while (num > 0) { sum += num % 10; // 将个位数加到sum上 num /= 10; // 去掉个位数 } num = sum; // 将相加的结果赋给num,继续下一轮相加 } return num; // 返回最终的结果 } int main() { int num; std::cout << "输入一个非负整数:"; std::cin >> num; int result = addDigits(num); // 调用函数计算各位相加的结果 std::cout << "各位相加的结果为:" << result << std::endl; // 输出结果 return 0; }
这段代码使用了两个函数:addDigits
和main
。
addDigits
函数用于计算输入的非负整数的各位相加的结果。它使用了两个嵌套的循环,外层循环检查结果是否大于等于10,如果是,则继续内层循环进行相加操作。内层循环通过取余运算和整除运算获取每一位的数字,并将其加到sum
上。最后,将sum
赋值给num
,以便下一轮的相加操作。当num
小于10时,循环结束,函数返回最终的结果。
main
函数用于读取输入的非负整数,并调用addDigits
函数来计算各位相加的结果。最后,将结果输出到控制台。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892