前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >LeetCode 258. Add Digits

LeetCode 258. Add Digits

作者头像
ShenduCC
发布2020-04-21 10:45:12
3250
发布2020-04-21 10:45:12
举报
文章被收录于专栏:算法修养算法修养

题目

同余定理,任何一个10进制数n 都可以表示成 n = a10^x + b10^(x-1) + .... c*10^0

那么 n ≡ ( a10^x + b10^(x-1) + .... c*10) mod 9

( a10^x + b10^(x-1) + .... c10) mod 9 = a10^x mod 9 + b * 10^(x-1) mod 9 +..c*10^0 mod9

又因为 a*10^x mod 9 = (a mod 9) * (10^x mod 9) = a mod 9

所以 n ≡ (a+b+..c) mod 9

题目求一个数字上每位上的数字相加得到一个新的数字,直到这个数字只有1位, 实际上就是 n ≡ (a+b+..c) ≡ n2 ≡ (a2+b2+..c2) ≡ ...nx ≡ (ax+bx+..cx) mod 9 其中 (nx = a(x-1)+b(x-1)+...c(x-1))

所以求n对9的余数就好了。当余数为0是,答案输出9

代码语言:javascript
复制
class Solution {
public:
    int addDigits(int num) {
        
        if(num==0)
            return 0;
        return num%9==0?9:num%9;
        
    }
};
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档