60天力扣打卡(第2天)

简介: 60天力扣打卡(第2天)

题目:

202. 快乐数

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

「快乐数」 定义为:

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

如果 n快乐数 就返回 true ;不是,则返回 false

示例 1:

输入:n = 19

输出:true

解释:

12 + 92 = 82

82 + 22 = 68

62 + 82 = 100

12 + 02 + 02 = 1


示例 2:

输入:n = 2

输出:false

我们面对这类题有两种解法。

法一:

假设给定一个数m,我们首先要知道各位的数字,然后将它们加起来。再根据快乐数的定义,就可以将本题解决。

int headle(int n)
{
     int i;
     int s=0;
     while(n)
     {
        i=n%10;
        s=s+i*i;
        n=n/10;
                  }
      return s;
                            }
bool isexit(int *s,int n)
{  
     int i=0;
     for(i=0;i<1000;i++)
     {
         if(s[i]==n)
          return ture;
                        }
          return false;
                              }
bool ishappy(int n)
{
    int i=0;
    int s[1000];
    while(!isexit(s,n))
    {   
        s[i]=n;
        i++;
        n=headle(n);
                       }
         return n==1;
                           }

法二:

龟兔赛跑算法。

我们假设兔子与乌龟在同一个起点。乌龟每次走一步,兔子每次走两步。如果兔子与乌龟相遇,那门一定在转圈。如果在数字1处相遇,那门一定是happy number。

int headle(int n)
{
     int s=0;
     int i;
     while(n)
     {
         i=n%10;   
         s=s+i*i;
         n=n/10;
                    }
                           }
bool ishappy(int n)
{
      int tru=n;
      int rib=n;
      do{
        tru=headle(tru);
        rib=headle(headle(rib));
                                  }while(tru!=rib);
         return tru==1;
                                                    }
相关文章
|
机器学习/深度学习 算法 程序员
C++ Algorithm 库 算法秘境探索(Algorithm Wonderland Exploration)
C++ Algorithm 库 算法秘境探索(Algorithm Wonderland Exploration)
473 1
|
JavaScript 前端开发 算法
React技术栈-虚拟DOM和DOM diff算法
这篇文章介绍了React技术栈中的虚拟DOM和DOM diff算法,并通过一个实际案例展示了如何使用React组件和状态管理来实现动态更新UI。
119 2
|
6月前
|
数据采集 JSON 数据可视化
JSON数据解析实战:从嵌套结构到结构化表格
在信息爆炸的时代,从杂乱数据中提取精准知识图谱是数据侦探的挑战。本文以Google Scholar为例,解析嵌套JSON数据,提取文献信息并转换为结构化表格,通过Graphviz制作技术关系图谱,揭示文献间的隐秘联系。代码涵盖代理IP、请求头设置、JSON解析及可视化,提供完整实战案例。
410 4
JSON数据解析实战:从嵌套结构到结构化表格
|
10月前
|
存储 缓存 NoSQL
常见的 NoSQL 数据库有哪些?
常见的 NoSQL 数据库有哪些?
615 59
|
9月前
|
存储 缓存 网络协议
第五问:一个程序从点击到启动发生了什么?
一个可执行程序从用户点击启动到运行,经历了8个主要阶段:用户触发启动、操作系统查找文件、进程创建、可执行文件加载到内存、初始化程序上下文、执行程序入口点、程序运行和程序退出。涉及硬盘、内存、缓存等硬件交互。
193 0
|
XML Java API
Spring Boot快速入门指南
Spring Boot快速入门指南
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的智慧校园管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的智慧校园管理系统附带文章源码部署视频讲解等
117 4
|
云计算
金秋云创季 | 优惠拉满,11月1日零点开启
域名 / 商标 / 备案 / 建站 / 资质等企业应用商品优惠已拉满,往下滑,亮点提前知晓
537 0
16Linux - 文件管理(删除目录:rmdir)
16Linux - 文件管理(删除目录:rmdir)
64 0
|
前端开发
带你读《2022技术人的百宝黑皮书》——全景封面视频生成技术在淘宝的应用(15)
带你读《2022技术人的百宝黑皮书》——全景封面视频生成技术在淘宝的应用(15)
200 0