小益的判断梦想数

题目描述

梦想数定义,一直对数每位的平方进行求和操作,当循环中出现 1 则为梦想数
输入一个正整数,判断其是否为梦想数
例: 19
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
即 19 为梦想数

样例输入

19

样例输入

忘了。。你能算对就行

思路

梦想数好找,关键在于如何判断不是梦想数
通过计算(测试)可以发现:
当一个数为非梦想数时候,后面一定会出现循环的数(曾经出现过的
基本思路:存下出现过的数,判断是否重复出现,出现则为非梦想数
:需要先判断是否为 1, 因为梦想数后面也是一直循环 1
另外可能会出现大量的个位数的平方和计算
我们可以采用预处理数组存好 0 - 9 的平方和提高时间效率

编码

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;public class Main {private static int[] a = new int[10];               // 记录 0 - 9 的平方和private static Set<Integer> set = new HashSet<>();  // 记录出现过的数private static void init() {                        // 预处理平方和,减少计算量for(int i = 1; i < 10; ++i) {a[i] = i*i;}}private static int getSum(int x) {                  // 一次求每位的平方和操作int sum = 0;while(x != 0) {sum += a[x%10];x /= 10;}return sum;}private static boolean isDreamNum(int x) {          // 递归层数不深所以未采用循环if(x == 1) return true;if(set.contains(x)) return false;set.add(x);return isDreamNum(getSum(x));}public static void main(String[] args) {init();Scanner scn = new Scanner(System.in);int x = scn.nextInt();if(isDreamNum(x)) {System.out.println("Yes");} else {System.out.println("No");}}
}

转载于:https://www.cnblogs.com/qq188380780/p/11495636.html

2020校招多益网络软件研发笔试相关推荐

  1. 2020校招美团点评笔试

    小团数字转换问题 题目描述 就是将阿拉伯数字转换为中文大写数字 输入 一维字符串数组,每项为阿拉伯数字,数字保留 2 位且最大值不超过一万亿, 输出 转换后的数组 样例输入 ["200.00 ...

  2. 2020哔哩哔哩校招后端开发笔试编程题总结

    2020哔哩哔哩校招后端开发笔试编程题总结 1.给定一个正整数N,试求有多少组连续正整数满足所有数字之和为N? (1 <= N <= 10 ^ 9) 暴力求解法: package Day4 ...

  3. 58同城2020校招转转算法岗笔试编程题

    58同城2020校招转转算法岗笔试编程题 第一题 题目描述:年末了要评选优秀员工了,给定一个优秀员工比率,在员工的评分上计算出能被选中的优秀员工的评分阈值.优秀员工人数=员工人数*优秀员工比率.员工人 ...

  4. 背包问题 2020年小米校招JAVA岗笔试第二题

    对于背包问题:例如小偷东西问题 如上图 小偷最多可以带走重量位20.要尽可能带走多的商品. 所以应该设置数组capacity[20+1], 商品itmes [5+1] 其中,capacity[0]=0 ...

  5. 网易2020校招笔试 系统开发研发工程师(提前批)牛客练习 Apare_xzc

    网易2020校招笔试 系统开发研发工程师(提前批)练习 2020.9.4 10道选择,2道问答,4道编程 牛客链接<– 编程题: 1. 小易的英语软件 小易是班级的英语课代表, 他开发了一款软件 ...

  6. 2020校招4399游戏开发岗笔试编程题题解部分

    2020校招4399游戏开发岗笔试编程题题解 序号四 题目描述: 有n个人围成一圈,顺序排号.从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位. 输入描述: 一 ...

  7. 京东2020校招数据分析工程师二面(2019.9.18)

    九月跑东跑西,相比前两个月的刷题输入,更多的在输出和打磨面试经验.跑了很多面试,不断挂挂挂挂挂,这是第一次进了二面. 地点: 广州 岗位:数据分析工程师 京东笔试传送门: <京东2020校招数据 ...

  8. 科恩实验室招聘 linux,腾讯科恩实验室2020校招实习生

    原标题:腾讯科恩实验室2020校招实习生 腾讯安全科恩实验室作为腾讯集团旗下一支国际一流的信息安全团队,在桌面端安全.移 动终端安全等研究领域有十多年的积累,技术实力和研究成果达到了国际领先水平:近几 ...

  9. 网传BAT等大厂2020校招传统大厂白菜价!

    网传2020校招传统大厂白菜价 (友情提醒:请将手机旋转90度 横屏观看)

最新文章

  1. 又一年5.20,用Python助力程序员脱单大攻略(视频版)
  2. ylbtech-Unitity-CS:Hello world
  3. QQ2007退出市场
  4. 将用户添加到sudoers里面,使用户拥有sudo权限
  5. 重新上手c语言的一些坑
  6. MySql存储过程异常处理示例
  7. Cadence Allegro PCB设计88问解析(十二) 之 Allegro中两种单位显示设置
  8. Mini USB 引脚定义及机械尺寸
  9. 技术指南 | 理解零知识证明算法之Zk-stark
  10. InSAR数据处理软件简介
  11. 用Python做证券指数的三种策略分析
  12. zheng项目新建一个module学习学习
  13. 再安利几个看片追剧的App
  14. 中国人保为易集康健康科技承保产品责任险,为消费者保驾护航!
  15. AD布线布局和抗干扰
  16. 【专利小王子】审查意见通知书中外文对比文件的查找以及下载
  17. 荣耀接盘者传闻多多,但最可能接盘的是神州数码
  18. 他们如何利用微信赚钱
  19. 淘宝天猫乐高的销售情况
  20. using Aspose文档合并总结

热门文章

  1. (百度、高德、谷歌)离线地图二次开发
  2. Mycat集群部署(基于HAProxy + Mycat)
  3. 经纬财富:鄂尔多斯套单形成的表现与解套技巧
  4. 无线各种组网架构及应用
  5. 竞赛无人机搭积木式编程(三)---用户自定义航点自动飞行功能(全局定位,指哪打哪)
  6. 中式红木装修展现传统文化底蕴
  7. 计算机专业有必要报计算机二级吗?该如何做好未来的规划?迷茫的同学,看这里!
  8. 【汇正财经】什么是高位十字星的反技术操作?
  9. java除数取余_Java中的相除(/)和取余(%)的实现方法|chu
  10. 牛顿法原理(matlab实现,求零点,求极值)