当前位置: 首页 > news >正文

C/C++ 快乐数: 编写一个算法来判断一个数n是不是快乐数

题目: 编写一个算法来判断一个数n是不是快乐数。

快乐数的定义:
    对于一个正整数,每一次将该数替换为它每个位置上的数字的平方和。
    然后重复这个过程直到这个数变为 1,也可能是 无限循环 但始终变不到 1。
    如果这个过程 结果为 1,那么这个数就是快乐数。
    如果 n 是 快乐数 就返回 true ;不是,则返回 false 。

 
示例 1:
    输入:n = 19
    输出:true
    
示例 2:
    输入:n = 2
    输出:false

示例 3:
    输入:n = 5
    输出:false

解析: 使用快指针和慢指针,如果快指针追上了慢指针,说明进入了循环

          如果循环值为1,则为快乐数。

示例源码:

// Len_IsHappy.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"int NextData(int n)
{int data = 0;while (n > 0){int ge = n % 10;data += ge * ge;n = n / 10;}return data;
}bool isHappy(int n) 
{int slow = n;int fast = n;do{slow = NextData(slow);fast = NextData(NextData(fast));} while (slow != fast);return slow == 1;
}
void PrintStr(int n, bool bResult)
{	// nprintf("\nn = %d", n);// resultprintf("\nbResult = %s\n", (bResult != 0) ? ("true") : ("false"));}int _tmain(int argc, _TCHAR* argv[])
{int n = 19;bool bResult = isHappy(n);PrintStr(n, bResult);n = 2;bResult = isHappy(n);PrintStr(n, bResult);n = 5;bResult = isHappy(n);PrintStr(n, bResult);return 0;
}

执行结果:

http://www.lryc.cn/news/259049.html

相关文章:

  • 【后端】JVM 远程调试
  • Android Studio中配置Flutter插件,创建小项目“hello world”
  • BabylonJS(一) 前言-为什么想写这个系列
  • 论文阅读_反思模型_Reflexion
  • Redis 数据结构:高频面试题及解析
  • 蓝桥杯小白赛第一场(1~6)(期望DP)
  • 房贷背后数学陷阱-蒙特卡洛算法Monte Carlo揭秘断供为何越来越多(硬核收藏)
  • spingboot项目实战之若依框架创建新模块
  • 智能优化算法应用:基于飞蛾扑火算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • 3分钟,掌握“曲面屏显示屏”
  • 光栅化渲染:光栅化算法实现
  • Python-Opencv图像处理的小坑
  • [LCTF 2018]bestphp‘s revenge
  • HTML中常用表单元素使用(详解!)
  • 掌握C++模板的艺术:类型参数、默认值和自动推导
  • Unity_使用FairyGUI搭建登录页面
  • 百岁时代即将来临,原知因成为消费新潮流
  • 16:00的面试,16:07就出来了,问的问题过于变态了。。。
  • VUE宝典之el-dialog使用
  • Cocos Creator:坐标系
  • logback日志框架使用
  • 【八】python装饰器模式
  • Unity-小工具-LookAt
  • TCP实现一对一聊天
  • 全面高压化与全面超快充,破解新能源汽车的时代难题
  • 02 CSS基础入门
  • MyBatis框架中的5种设计模式总结
  • ffmpeg相关命令
  • 锂电3V升12V1A升压芯片WT3209
  • Unity 置顶OpenFileDialog文件选择框