LintCode569
来源:互联网 发布:有了域名如何建站 编辑:程序博客网 时间:2024/06/16 09:56
个位相加
给出一个非负整数 num
,反复的将所有位上的数字相加,直到得到一个一位的整数。
样例
给出 num
= 38。
相加的过程如下:3 + 8 = 11
,1 + 1 = 2
。因为2
只剩下一个数字,所以返回 2
。
挑战
你可以不用任何的循环或者递归算法,在 O(1) 的时间内解决这个问题么?
思路:不用递归的不清楚其中的数学原理。。但大致是和9的倍数的距离有关。
数学链接:https://en.wikipedia.org/wiki/Digital_root
代码:
class Solution {
public:
/**
* @param num a non-negative integer
* @return one digit
*/
int addDigits(int num) {
// Write your code here
if(num==0)
return 0;
else
return num%9==0?9:num%9;
}
};
阅读全文
0 0
- LintCode569
- Android学习(四)Service的学习(上)
- java使用redis发布和订阅消息
- opengl使用Blin-phone模型计算镜面光照强度
- js正则表达式的使用详解
- cf Educational Codeforces Round 26 D. Round Subset
- LintCode569
- 基于Overfeat的图片分类、定位、检测
- 关于SpringMVC中重定向
- Springboot连接同一物理机上多数据库
- Unity3D眼镜Shader技术实现
- 架构师日记——Varnish的性能调优
- 在用maven搭建的springmvc项目中配置使用log4j日志文件
- 已有a,b两个链表,每个链表中的结点包括学号,成绩。要求把两个链表合并,按学号升序排列。
- JS中的作用域和闭包的小知识点