LeetCode--258.各位相加

本文介绍了一个算法问题的解决方案,即如何通过递归函数反复将非负整数的各位数字相加,直至结果为一位数。以输入38为例,详细展示了3+8=11,1+1=2的过程,最终返回2。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数。

示例:

输入: 38
输出: 2

  • 解释: 各位相加的过程为:3 + 8 = 11, 1 + 1 = 2。 由于 2 是一位数,所以返回 2。

题目分析:

每计算下一个数字的各个位上的数字之和,都依赖于上一个数字的各个位数字之和,因此需要使用递归函数。所以,先求出来当前数字的各个位数字之和。

class Solution {
    public int addDigits(int num) {
        if(num<10){	//终止条件位数字为个位数字/
            return num;
        }
        int sum=0;
        while(num!=0){		//计算当前数字各个位数字之和
            sum+=num%10;
            num/=10;
        }
        return addDigits(sum);	//递归调用
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值