csp练习题:【题1】模拟法:各位相加
作者:野牛程序员:2023-07-03 20:20:02题目阅读 3166
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

