幸运数的定义与判断
幸运数的定义与判断
前言
前几天作为我校一场比赛的压轴题出场,但可以通过骗分得到可观的分数,本人所用方法虽不是骗分,但本质上也是骗过系统得分。
- 原题链接:牛客网幸运数
- 幸运数的定义:
1、对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
2、然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
3、如果这个过程 结果为 1,那么这个数就是幸运数。
e.g:
19–>1,9
1²+9²=82
82–>8,2
8²+2²=68
68–>6,8
6²+8²=100
100–>1,0,0
1²+0²+0²=1
此时和为1,无需再往下运算,可认为19为幸运数
判断思路
1.在输入相应的n值后,利用while循环以及计数器算出该数为几位数
2.利用数组a[some]存放该数的每一位
3.通过for循环将此时的各位数平方求和,同时讲该值赋给n,让n进入下一次循环(在赋给n的同时定义的求和sum也要清零)
4.
- 在每次循环结束前判断n是否为1,若为1则停止循环,输出true
- 若不为幸运数,则需要在进行无数次循环后跳出循环,所以我们要引入新的计数器cnt2来记录循环次数,在计数器达到某一特定值时选择终止循环,并输出false,该方法仅适用于一些数比较小的情况。
二、使用步骤
1.引入库
2.读入数据
代码如下:
|
总结
通过骗过系统的测试点来得到分,虽无耻,但有用
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 涅槃豆の博客!
评论