+ 92 = 82

  • 82 + 22 = 68
  • 62 + 82 = 100
  • 12 + 02 + 02 = 1
  • 思路:

    (1)题意为判断给定的整数是否为一个“快乐的数”,所谓快乐的数需要满足一下几个条件:将该整数的每个位上的数字的平方相加得到一个新的整数,循环对新的整数进行上述操作,如果最后所得整数收敛于1,则这样的数字为一个“快乐的数”。

    (2)首先,判断0肯定不是一个“快乐的数”;其次,对初始数字的每个位上数的平方相加,循环进行前面的操作;需要注意的是,对于可能会出现死循环的数字需要进行判断,需要判断循环的次数,这里通过测试得到循环次数为4,即如果4次循环过程中,每一次所得数字中都不收敛于1,则判断该数字不是一个“快乐的数”,否则,则是一个“快乐的数”;最后,对于那些循环得到的结果为1的数字,直接返回true,即该数字是一个“快乐的数”。

    (3)详情见下方代码。希望本文对你有所帮助。

    算法代码实现如下:

    /**
     * @author liqq
     */
    public class HappyNumber {
    	public static boolean isHappy(int n) {
    		if (n == 0)
    			return false;
    		return testhappy(0, n);
    	}
    
    	private static boolean testhappy(int number, int n) {
    		int sum = n;
    		int add = 0;
    		boolean hasone = false;
    		while (sum != 0) {
    			int square = (sum % 10) * (sum % 10);
    			add += square;
    			sum = sum / 10;
    			if (sum % 10 == 1) {
    				hasone = true;
    			}
    		}
    		number++;
    
    		int test = add;
    		while (test != 0) {
    			if (test % 10 == 1) {
    				hasone = true;
    			}
    			test = test / 10;
    		}
    
    		if (hasone == false && number > 4)
    			return false;
    
    		if (add != 1 || add % 10 != 1) {
    			boolean istrue = testhappy(number, add);
    			if (istrue)
    				return true;
    		} else {
    			return true;
    		}
    		return false;
    	}
    }

    最新文章

    1. python学习之路-day6-面向对象
    2. hdu 3089 约瑟夫环
    3. 设计模式:桥连模式(Bridge)
    4. 用SPCOMM 在 Delphi中实现串口通讯 转
    5. 自定义按钮设置BadgeNumber
    6. oracle--varchar2
    7. 1、Window10 Electron 开发环境搭建
    8. POJ - 3608 Bridge Across Islands【旋转卡壳】及一些有趣现象
    9. bzoj 1196
    10. 常用PHP函数的封装
    11. Web Api 2.0中使用Swagger生成Api文档的2个小Tips
    12. java注解--Annotation
    13. 数据结构之队列c代码实现
    14. 多线程编程 NSOperation
    15. Timer 的学习
    16. Java在线备份和还原MySQL数据库。
    17. Centos6安装SaltStack
    18. DjangoMTV模型之视图层views及模板层template
    19. cached-query 将缓存和查询数据库高速连接起来的轻类库
    20. Spring4新特性——集成Bean Validation 1.1(JSR-349)到SpringMVC 配置校验器

    热门文章

    1. OpenResty修改Nginx默认autoindex页面
    2. Tomcat如何实现WebSocket
    3. ROS机器人程序设计(原书第2版)补充资料 (壹) 第一章 ROS系统入门
    4. python 函数运算先于单目运算
    5. Servlet - Listener、Filter、Decorator
    6. SpriteKit关于SKScene中的渲染Loop
    7. 微信小程序基础之新建的项目文件图解
    8. 在windows和Linux上安装ImageMagick与jmagick,Maven配置、Java图片压缩代码(整理网上、结合自己情况、编写出来的新安装方式)
    9. Oracle 执行计划(Explain Plan) 说明
    10. 多线程之Java线程阻塞与唤醒