当前位置:首页题目 > 正文

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;
}

这段代码使用了两个函数:addDigitsmain

addDigits函数用于计算输入的非负整数的各位相加的结果。它使用了两个嵌套的循环,外层循环检查结果是否大于等于10,如果是,则继续内层循环进行相加操作。内层循环通过取余运算和整除运算获取每一位的数字,并将其加到sum上。最后,将sum赋值给num,以便下一轮的相加操作。当num小于10时,循环结束,函数返回最终的结果。

main函数用于读取输入的非负整数,并调用addDigits函数来计算各位相加的结果。最后,将结果输出到控制台。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击