"幸运数"判断 详细题解
题目分析
核心规则
1. 位数编号:从右往左,个位是第1位,十位是第2位,百位是第3位...
2. 变换规则:
* 偶数位(第2, 4, 6...位):数字保持不变
* 奇数位(第1, 3, 5...位):数字乘以7,然后反复数位求和直到结果≤9
3. 幸运数判定:变换后所有数位之和是8的倍数
样例验证
16347的变换过程:
76344的变换过程:
代码实现1
代码实现2
关键点说明
1. 位置计算
2. 数位求和函数
3. 数据类型
* 输入数字最大10^12,用string存储更方便处理各位数字
* 数位和最大约12×9=108,用int足够
复杂度分析
* 时间复杂度:O(N × L),其中N是测试用例数,L是数字的位数(最多12位)
* 空间复杂度:O(L),存储字符串
测试建议
可以测试以下边界情况:
* 单个数字:1, 8, 9
* 两位数:10, 99
* 大数:999999999999