【藍橋杯】每天一題,理解邏輯(3/90)【Leetcode 快樂數】

閑話系列:每日一題,禿頭有我,Hello!!!!!,我是IF‘Maxue,歡迎大佬們來參觀我寫的藍橋杯系列,我好久沒有更新博客了,因為up豬我寒假用自己的勞動換了臺新電腦,沒用父母的錢哦!!!,雖然進度慢了,但是值得,藍橋杯快開始了,所以我也開始努力起來了。同時,我也歡迎各位大佬互三,看到我會及時回復的!!!

放一張阿刃在這,除大家的霉運
在這里插入圖片描述

文章目錄

  • 題目解析
  • 算法原理解析
    • 具體解法
  • 代碼實現

題目解析

在這里插入圖片描述

  1. 搞懂定義
  • 對于一個正整數,每一次替換為它每個位置上的平方和。

  • 舉例:

  • 在這里插入圖片描述

    • 19這個數字經過處理可以變成1,2這個數字變成了無限循環,
    • 所以19是快樂數字,2就不是
    • 判斷最后的那一個環是否都是一

算法原理解析

我們仔細觀察,在最后的結尾,

  • 為快樂數的數字最后的結尾都是1,我們可以理解成一個園環。

  • 非快樂數的數字最后結尾我們知道,肯定不是1,但是因為鴿巢原理我們會得出結論肯定成環。(不知道也沒關系,下面有詳細解析)

  • 原理如圖所示,上面的是快樂數,下面的數是非快樂數:
    原理圖

  • 判斷最后的環的數字是否都是1.

具體解法

  • 解法 快慢雙指針。
    • 定義快慢指針 在這里插入圖片描述> - 慢指針每次后移一步,快指針每次后移兩步 讓慢指針一次進行一次操作,讓快指針進行2次快樂數操作
      - 判斷相遇的值
      - 直接判斷相遇的值
  • 鴿巢原理詳解:
    • 我們可是讓慢指針執行一次,然后對于快指針每一次后移進行執行快樂數的兩次操作
      • 為什么這些數字不會一直鋪開,為什么一定要成環?
        證明原理:鴿巢原理

      • 如果有n個巢,n+1個鴿子可以推論

      • 在這里插入圖片描述

        證明這道題:

      • 一個數字2.1 * 10^9
        在這里插入圖片描述

        • 我們已經知道n個巢穴,n+1個鴿子,如果鴿子全部歸位,至少有一個巢穴里面的鴿子大于1.

        • 我們拿出9999999999這個數字,進行快樂數操作,

        • 范圍將會鎖定在【1,810(9^2 * 10)】(這個就是巢穴),我們進行811次快樂數字操作(這個就是鴿子)

代碼實現

int HappyC(int n)//快樂數的操作{   int x=0;int sum=0;while(n){x=n%10;sum=x*x+sum;n=n/10;}return sum;}bool isHappy(int n) {//定義兩個快慢指針,用數字代替int fast=0;int slow=0;slow=n,fast=n;while(1){fast=HappyC(fast);fast=HappyC(fast);slow=HappyC(slow);if(fast==slow){if(fast==1){return true;}else{return false;}}}}

運行結果展示:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71602.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71602.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71602.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

爬蟲Incapsula reese84加密案例:Etihad航空

聲明: 該文章為學習使用,嚴禁用于商業用途和非法用途,違者后果自負,由此產生的一切后果均與作者無關 一、找出需要加密的參數 1.js運行 atob(‘aHR0cHM6Ly93d3cuZXRpaGFkLmNvbS96aC1jbi8=’) 拿到網址,F12打開調試工具,隨便搜索航班,切換到network搜索一個時間點可以找…

緩存雪崩 緩存擊穿 緩存穿透

1. redis使用場景-緩存-緩存穿透 在實際開發中,Redis 被廣泛應用于緩存,以提高系統性能和響應速度。然而,在使用緩存時,需要注意一些問題,其中 緩存穿透 是一個常見且需要重點關注的場景。 什么是緩存穿透 ● 緩存穿…

【YOLOv12改進trick】多尺度大核注意力機制MLKA模塊引入YOLOv12,實現多尺度目標檢測漲點,含創新點Python代碼,方便發論文

??改進模塊??:多尺度大核注意力機制(MLKA) ??解決問題??:MLKA模塊結合多尺度、門控機制和空間注意力,顯著增強卷積網絡的模型表示能力。 ??改進優勢??:超分辨的MLKA模塊對小目標和模糊目標漲點很明顯 ??適用場景??:小目標檢測、模糊目標檢測等 ??思路…

better-sqlite3之exec方法

在 better-sqlite3 中,.exec() 方法用于執行包含多個 SQL 語句的字符串。與預編譯語句相比,這種方法性能較差且安全性較低,但有時它是必要的,特別是當你需要從外部文件(如 SQL 腳本)中執行多個 SQL 語句時。…

電路基礎:【1】PN結二極管制作電橋點亮LED燈

第一章:PN結二極管制作電橋點亮LED燈 文章目錄 第一章:PN結二極管制作電橋點亮LED燈前言一、電路原理二、電路圖與元器件1.電路圖 做實驗總結 前言 在本章中,我們將探討如何通過PN結二極管制作電橋電路,并利用該電路點亮LED燈。L…

XHR請求解密:抓取動態生成數據的方法

在如今動態頁面大行其道的時代,傳統的靜態頁面爬蟲已無法滿足數據采集需求。尤其是在目標網站通過XHR(XMLHttpRequest)動態加載數據的情況下,如何精準解密XHR請求、捕獲動態生成的數據成為關鍵技術難題。本文將深入剖析XHR請求解密…

機器學習數學基礎:42.AMOS 結構方程模型(SEM)分析的系統流程

該流程圖完整呈現了 AMOS 結構方程模型(SEM)分析的系統流程,具體步驟及內涵如下: 1. 模型設定 基于理論基礎或研究假設,構建結構方程模型的初始框架,明確潛變量與顯變量的關系、測量模型(因子…

以太網通訊

接口開發筆記-WebApi-CSDN博客 以太網常用通訊協議 1、modbus tcp using EasyModbus; using System;class Program {static void Main(string[] args){// 創建Modbus客戶端實例ModbusClient modbusClient new ModbusClient("192.168.1.100"); // IP地址modbusCli…

Arcgis中添加腳本工具箱

文章目錄 準備資料1、打開arcmap2、找到目錄窗口3、復制粘貼工具箱的路徑4、添加或者確認python腳本路徑準備資料 (1)工具箱 (2)python腳本 1、打開arcmap 2、找到目錄窗口 3、復制粘貼工具箱的路徑 4、添加或者確認python腳本路徑 腳本上右鍵屬性(注意:腳本內容和路徑…

TDengine SQL查詢語法

簡介 TDengine 中的查詢 SQL 基本遵循 MYSQL 的查詢語法,大部分查詢都是通過超級表按時間維度進行的各種查詢。 TDengine 時序數據庫以時間為主索引列進行數據組織排序及存儲,同時按存儲塊做了預計算,所以在無普通列過濾的 SQL 查詢語句中聚…

Apache nifi demo 實驗

Apache nifi 是個數據流系統,可以通過配置 自定義的流程來實現數據的轉換。 比如可以配置一個流程,讀取數據庫里的數據,再轉換,最后保存到本地文件。 這樣可以來實現一些數據轉換的操作,而不用特地編寫程序來導入導出。…

javascript一些原生方法記錄

Element.scrollIntoView() Element 接口的 scrollIntoView() 方法會滾動元素的父容器,使被調用 scrollIntoView() 的元素對用戶可見。 structuredClone() 方法 Window 接口的 structuredClone() 方法使用結構化克隆算法將給定的值進行深拷貝。

記一次ScopeSentry搭建

介紹 Scope Sentry是一款具有資產測繪、子域名枚舉、信息泄露檢測、漏洞掃描、目錄掃描、子域名接管、爬蟲、頁面監控功能的工具,通過構建多個節點,自由選擇節點運行掃描任務。當出現新漏洞時可以快速排查關注資產是否存在相關組件。 目前功能 插件系…

Spring提供的SPEL表達式

SPEL 1. 概述 SpEL是Spring框架中用于表達式語言的一種方式。它類似于其他編程語言中的表達式語言,用于在運行時計算值或執行特定任務。 SpEL提供了一種簡單且強大的方式來訪問和操作對象的屬性、調用對象的方法,以及實現運算、條件判斷等操作。它可以…

【Azure 架構師學習筆記】- Azure Databricks (14) -- 搭建Medallion Architecture part 2

本文屬于【Azure 架構師學習筆記】系列。 本文屬于【Azure Databricks】系列。 接上文 【Azure 架構師學習筆記】- Azure Databricks (13) – 搭建Medallion Architecture part 1 前言 上文搭建了ADB 與外部的交互部分,本篇搭建ADB 內部配置來滿足medallion 架構。…

vulnhub靶場之【digitalworld.local系列】的torment靶機

前言 靶機:digitalworld.local-torment,IP地址為192.168.10.12 攻擊:kali,IP地址為192.168.10.6 kali采用VMware虛擬機,靶機選擇使用VMware打開文件,都選擇橋接網絡 這里官方給的有兩種方式&#xff0c…

docker-compose部署mongodb副本集集群

生成密鑰文件 ? openssl rand -base64 756 > mongodb.key chmod 400 mongodb.key # 權限必須為400?:ml-citation{ref="4" data="citationList"} chown 999:999 mongodb.key # MongoDB容器用戶ID為999?:ml-citation{ref="4" data="…

k8s v1.28.15部署(kubeadm方式)

k8s部署(kubeadm方式) 部署環境及版本 系統版本:CentOS Linux release 7.9.2009 k8s版本:v1.28.15 docker版本:26.1.4 containerd版本:1.6.33 calico版本:v3.25.0準備 主機ip主機名角色配置1…

Redis特性總結

一、速度快 正常情況下,Redis 執?命令的速度?常快,官?給出的數字是讀寫性能可以達到 10 萬 / 秒,當然這也取決于機器的性能,但這?先不討論機器性能上的差異,只分析?下是什么造就了 Redis 如此之快,可以…

C# Unity 面向對象補全計劃 之 索引器與迭代器

本文僅作學習筆記與交流,不作任何商業用途,作者能力有限,如有不足還請斧正 本篇有部分內容出自唐老獅,唐老師網站指路:全部 - 游習堂 - 唐老獅創立的游戲開發在線學習平臺 - Powered By EduSoho 目錄 1.索引器 2.迭代器 1.索引器 我的理解 索…