<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                **一. 題目描述** Write an algorithm to determine if a number is “happy”.? A happy number is a number defined by the following process: Starting with any positive integer, replace the number by the sum of the squares of its digits, and repeat the process until the number equals 1 (where it will stay), or it loops endlessly in a cycle which does not include 1\. Those numbers for which this process ends in 1 are happy numbers.? Example: 19 is a happy number 1^2 + 9^2 = 82 (各個位的平方和)? 8^2 + 2^2 = 68? 6^2 + 8^2 = 100? 1^2 + 0^2 + 0^2 = 1 **二. 題目分析** 題目要求對任意一個正整數,不斷各個數位上數字的平方和,若經過若干次運算后結果收斂到1,則該數字為Happy Number,**不是Happy Number的數在經過多次運算后會從某個數開始陷入循環**。這道題目我們只用根據規則進行計算,并使用一個map存儲已經出現過的數字,這樣每輪計算完成后查找map,若發現值已存在,證明已陷入循環,可跳出循環并判定該整數不是Happy Number。 更多關于Happy Number的知識可參考:[http://baike.baidu.com/link?url=slZGeshN-Igmd4geJ7PZ9hPwk_PZGZK6QttvzH5TpUiQIPy8qZAmG6o9-5-x-Eu2WGoQuhnASB7alb2ecEatpVj0C9-3DaQPjy0Cpvmvp7AB3IiKy6vu1Qb8FhCbj_Eg1Nt4ba9FDzZT1BzbQcsL5a](http://baike.baidu.com/link?url=slZGeshN-Igmd4geJ7PZ9hPwk_PZGZK6QttvzH5TpUiQIPy8qZAmG6o9-5-x-Eu2WGoQuhnASB7alb2ecEatpVj0C9-3DaQPjy0Cpvmvp7AB3IiKy6vu1Qb8FhCbj_Eg1Nt4ba9FDzZT1BzbQcsL5a) **三. 示例代碼** ~~~ #include <iostream> #include <map> using namespace std; class Solution { public: bool isHappy(int n) { if (n < 0) return false; if (n == 1) return true; map<int, bool> showNum; while (true) { int temp = 0; while (n) { temp += (n % 10) * (n % 10); n /= 10; } if (temp == 1) return true; else if (showNum[temp] == true) // 陷入循環,判為非快樂數 return false; else { showNum[temp] = true; n = temp; } } } }; ~~~ 一些測試結果: ![](https://box.kancloud.cn/2016-01-05_568bb5f06011b.jpg) **四. 小結** 無
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看