給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數
示例:
輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於2是一位數,所以返回 2。
進階:
你可以不使用迴圈或者遞迴,且在 O(1) 時間複雜度內解決這個問題嗎?
class Solution {
public int addDigits(int num) {
if(num < 10){ //10以內返回原值
return num;
}
int b = 0;
int c = 0;
while (num >=10){
b = num%10; //迴圈求餘
c +=b;//設定變數存放各餘數之和
num = num/10;
if(num < 10){
num += c; //將餘數之和與最後一位餘數求和
c = 0;//將變數賦值為空,為餘數相加大於10繼續從0迴圈
}
}
return num;
}
}
相關推薦
給定一個非負整數 num,反覆將各個位上的數字相加,直到結果為一位數
示例: 輸入: 38 輸出: 2 解釋: 各位相加的過程為:3 + 8 = 11, 1 + 1 = 2。 由於2是一位數,所以返回 2。 進階: 你可以不使用迴圈或者遞迴,且在 O(1) 時間複雜度內解決這個問題嗎? class Solution {
LeetCode 給定一個非負整數 num。對於 0 ≤ i ≤ num 範圍中的每個數字 i ,計算其二進位制數中的 1 的數目並將它們作為陣列返回。
/** * Return an array of size *returnSize. * Note: The returned array must be malloced, assume caller calls free(). */ int* countBit
java__給定一個非負整數陣列,假定你的初始位置為陣列第一個下標。 陣列中的每個元素代表你在那個位置能夠跳躍的最大長度。 請確認你是否能夠跳躍到陣列的最後一個下標。
import java.util.Scanner; public class Main { public static void main(String[] args){
給定一個非負整數陣列,最初定位在陣列的第一個索引處。組中的每個元素表示您在該位置的最大跳躍長度。求最小跳數
本題源自leetcode 45 ------------------------------------------------------------------------- 思路:用倆個 變數標識當前的位置 和 下一步能調到最遠的位置。 程式碼: int jum
寫一個遞迴函式DigitSum(n),輸入一個非負整數,返回組成它的數字之和, 例如,呼叫DigitSum(1729),則應該返回1+7+2+9,它的和是19
#include <stdio.h> #define _CRT_SECURE_NO_WARNINGS 1 int DigitSum(int i) { int sum = 0; int j = 0; if (i != 0) { j = i % 10; i = i /
遞迴函式DigitSum(n),輸入一個非負整數,返回組成它的數字之和
例:呼叫DigitSum(1729),則應該返回1+7+2+9,它的和是19 程式碼: #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int Add(
寫一個遞迴函式DigitSum(n),輸入一個非負整數,返回他組成它的數字之和
寫一個遞迴函式DigitSum(n),輸入一個非負整數,返回他組成它的數字之和 思路分析:遞迴函式的遞推關係:sum%10+DigitSum(sum\10); 出口:sum為個位數; 完整程式: #define _CRT_SECURE_NO_WARNINGS #incl
C語言編程實現 輸入一個非負整數,返回組成它的數字之和(遞歸方法)
第四次 use pri int digi pre 編程 res std 此題目基本思想與非遞歸方法思想一樣,主要是對輸入的數進行取數(對10取余)和縮小(整除10)eg:1234第一次 1234%10取得數4,1234/10縮小為123第二次 123%10取得數3, 1
誒~來寫一個遞迴函式 輸入一個非負整數 返回組成它的數字之和
寫一個遞迴函式DigitSum(n),輸入一個非負整數,返回組成它的數字之和 例如,呼叫DigitSum(1729),則應該返回1+7+2+9,它的和是19 理性分析一波 非負整數 返回組成它的數字之和 冷靜思考 反覆思考 上個廁所 吃個香蕉 喝杯咖啡 玩會兒手機 誒~真的
給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。
題目描述: 給定兩個非空連結串列來表示兩個非負整數。位數按照逆序方式儲存,它們的每個節點只儲存單個數字。將兩數相加返回一個新的連結串列。 你可以假設除了數字 0 之外,這兩個數字都不會以零開頭。 思路: 1.定義連結串列類 2.建立兩個數的連結串列表示物件 3.傳入函式實現相加:每一位相加,設
將給定非負整數列表中的數字排列成最大數字的2種方法。例如,給定[50,2,1,9],最大數字為95021。
一、題目簡介 編寫一個能將給定非負整數列表中的數字排列成最大數字的函式。例如,給定[50,2,1,9],最大數字為95021。 此處以如下陣列為例:Integer[] num=new Integer[]{51,9,370,82,4,796}; 二、例項程式碼 1、方法一: /
隨筆-給定兩個字串形式的非負整數 num1 和num2 ,計算它們的和
題目:給定兩個字串形式的非負整數 num1 和num2 ,計算它們的和。 注意: num1 和num2 的長度都小於 5100. num1 和num2 都只包含數字 0-9. num1 和num2 都不包含任何前導零。 你不能使用任何內建 BigInteger 庫, 也不能直接將
編寫一個能將給定非負整數列表中的數字排列成最大數字的函式。
//編寫一個能將給定非負整數列表中的數字排列成最大數字的函式。例如,給定[50,2,1,9],最大數字為95021。 public class Test4{ public static void main(String[] args){ int[] list={85,840,860,760,9
【Python】收集雨水問題:給定n個非負整數,表示直方圖的方柱的高度,同時,每個方柱的寬度假定都為1。若使用這樣形狀的容器收集雨水,可以盛多少水量?
收集雨水問題 給定n個非負整數,表示直方圖的方柱的高度,同時,每個方柱的寬度假定都為1。若使用這樣形狀的容器收集雨水,可以盛多少水量? 如輸入:0,1,0,2,1,0,1,3,2,1,2,1;返回6。 題目來源 分析思路:
編寫一個能將給定非負整數列表中的數字排列成最大數字的程式
問題描述:例如,給定[50,2,1,9],最大數字為95021 問題分析:將輸入的數字進行排列組合,使得最終得到的整數是最大的 問題實現需要注意 因為需要提取數列中每個數字的首位,並能夠和本
python小練習:給定一個非空且為正整數的列表 按重復次數 降序排列輸出
class 數字 轉換成 原來 小練習 顯示 python index 去重 假設有個列表 a=[1,1,1,2,2,4,5,5,5,5] (非空且為正整數) 那麽根據要求 最終輸出的形式為 5,1,2,4 (按重復次數 降序排列輸出) 代碼實現及解釋: a=[1
給定一列非負整數,求這些數連線起來能組成的最大的數
題目是這樣的: 程式碼是這樣的: import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scann
計算位數最高達300位的兩個非負整數的乘積,C語言程式設計實現
-------世界太蕪雜,我幫你整理---- -------C語言大數相乘運算---------- 今天我們要程式設計實現的是兩個超長整型資料進行相乘,並輸出結果 比如: 2134897427972647678 * 3497892374 我們先來看看執行效果
【資料結構 C描述】使用順序棧編制一個滿足下列要求的程式:對於輸入的任意一個非負十進位制數,列印輸出與其等值的二進位制數。
【資料結構 C描述】使用順序棧編制一個滿足下列要求的程式:對於輸入的任意一個非負十進位制數,列印輸出與其等值的二進位制數。 //main.cpp #include <iostream> #include <malloc.h> #include <stdl
判斷一個自然數是否為2的非負整數次方(power of 2)
public class IsPowerof2Demo { public static boolean isPoweroftwo(int x){ if(x<1){ return false; } int and