给定一个非负的整数,求他的各个位的和,然后对这个新数字再求和,直到最后只剩下一位数为止比如给定12345,各位之和是1+2+3+4+5=15,再算1+5=6,所以12345对应的就是6能不能把时间复杂度优化到o(1)呢? 很明显最简单的方法就是,用循环来执行求和,时间复杂度是o(logn) 那怎么把时间复杂度优化到o(1)呢? 只有一位数的情况 首先考虑最简单情况,就是只有一个数字,那就不用求了,直接返回这个数字就行了,取值范围是0-9 如果是两位数呢 然后是两位数字的情况,两位的数字是从10-99,那这个数和最大…