九日打卡-2-阅读报告
生活随笔
收集整理的這篇文章主要介紹了
九日打卡-2-阅读报告
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
練習題
1 題目描述?231. 2的冪?
給你一個整數 n,請你判斷該整數是否是 2 的冪次方。如果是,返回 true ;否則,返回 false 。
如果存在一個整數 x 使得?n == 2x ,則認為 n 是 2 的冪次方
class Solution { public:bool isPowerOfTwo(int n) {if(n==0){return 0;}else{int x;x = n % 2;if (x !=0) {if (n != 1) //在取余不為零情況下,排除n為1的情況return 0;elsereturn 1;}else //若取余結果為零,則遞歸,進一步整除return isPowerOfTwo(n/2);}} };2 題目描述?326. 3的冪
給定一個整數,寫一個函數來判斷它是否是 3?的冪次方。如果是,返回 true ;否則,返回 false 。
整數 n 是 3 的冪次方需滿足:存在整數 x 使得 n == 3^x
class Solution { public:bool isPowerOfThree(int n) {if(n==0){return 0;}else{int x;x = n % 3;if (x !=0) {if (n != 1) //在取余不為零情況下,排除n為1的情況return 0;elsereturn 1;}else //若取余結果為零,則遞歸,進一步整除return isPowerOfThree(n/3);}} };3 題目描述?342. 4的冪
給定一個整數,寫一個函數來判斷它是否是 4 的冪次方。如果是,返回 true ;否則,返回 false 。
整數 n 是 4 的冪次方需滿足:存在整數 x 使得 n == 4^x
class Solution { public:bool isPowerOfFour(int n) {if(n==0){return 0;}else{int x;x = n % 4;if (x !=0) {if (n != 1) //在取余不為零情況下,排除n為1的情況return 0;elsereturn 1;}else //若取余結果為零,則遞歸,進一步整除return isPowerOfFour(n/4);}} };4 題目描述?劍指 Offer 64. 求1+2+…+n
求?1+2+...+n?,要求不能使用乘除法、for、while、if、else、switch、case等關鍵字及條件判斷語句(A?B:C)。
class Solution {int res=0;public:int sumNums(int n) {bool x = n > 1 && sumNums(n - 1) > 0;res += n;return res;} };今日心得
1 在某些時候,可以利用短路來代替if-else語句
2 遞歸的思想
3 判斷是否是一個數的冪的時候,需要結合取余與整除,大致思路為先取余看輸入數是否為基數的倍數,若是,則將輸入數除以基數后進行遞歸操作。不斷遞歸直至最后遞歸數小于基數,此時判斷遞歸數是否為1 ,若為1則結果為true。注意遞歸函數中往往需要特判,且必須有終止條件。
總結
以上是生活随笔為你收集整理的九日打卡-2-阅读报告的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 工作中常用且容易遗忘的 CSS 样式清单
- 下一篇: Qt实现文字滚动、翻动动画