leetcode刷刷題(48) ---- 將數字變成 0 的操作次數(C語言版)

2020-6-8

  • 天地不仁,以萬物爲芻狗。
    老子 --《道德經》

題目

  • leetcode – 1342. 將數字變成 0 的操作次數
給你一個非負整數 num ,請你返回將它變成 0 所需要的步數。 如果當前數字是偶數,你需要把它除以 2 ;否則,減去 1 。

示例 1:
輸入:num = 14
輸出:6
解釋:
步驟 1) 14 是偶數,除以 2 得到 7 。
步驟 2) 7 是奇數,減 1 得到 6 。
步驟 3) 6 是偶數,除以 2 得到 3 。
步驟 4) 3 是奇數,減 1 得到 2 。
步驟 5) 2 是偶數,除以 2 得到 1 。
步驟 6) 1 是奇數,減 1 得到 0 。

示例 2:
輸入:num = 8
輸出:4
解釋:
步驟 1) 8 是偶數,除以 2 得到 4 。
步驟 2) 4 是偶數,除以 2 得到 2 。
步驟 3) 2 是偶數,除以 2 得到 1 。
步驟 4) 1 是奇數,減 1 得到 0 。

示例 3:
輸入:num = 123
輸出:12

提示:
0 <= num <= 10^6

來源:力扣(LeetCode)
鏈接:https://leetcode-cn.com/problems/number-of-steps-to-reduce-a-number-to-zero
著作權歸領釦網絡所有。商業轉載請聯繫官方授權,非商業轉載請註明出處。

個人解答:(C版本)

  • 這道題很簡單,題目即是解法。
	int numberOfSteps (int num)
	{
	    int count=0;
	    while(num > 0)
	    {
	        ++count;
	        if(num%2 == 0)
	            num /= 2;
	        else
	            num -= 1;
	    }
    	return count;
	}
  • 複雜度分析
    1)時間複雜度:O(logN)。
    2)空間複雜度:O(1)。
  • 運行結果:
    在這裏插入圖片描述
他山之石:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章