LeetCode 3099.哈沙德數:計算一個數十進制下各位之和

【LetMeFly】3099.哈沙德數:計算一個數十進制下各位之和

力扣題目鏈接:https://leetcode.cn/problems/harshad-number/

如果一個整數能夠被其各個數位上的數字之和整除,則稱之為 哈沙德數(Harshad number)。給你一個整數 x 。如果 x哈沙德數 ,則返回 x 各個數位上的數字之和,否則,返回 -1

?

示例 1:

輸入: x = 18

輸出: 9

解釋:

x 各個數位上的數字之和為 918 能被 9 整除。因此 18 是哈沙德數,答案是 9

示例 2:

輸入: x = 23

輸出: -1

解釋:

x 各個數位上的數字之和為 523 不能被 5 整除。因此 23 不是哈沙德數,答案是 -1

?

提示:

  • 1 <= x <= 100

解題方法:計算

如何“計算一個正整數十進制下各位之和”?

當這個數不為零時,不斷取出這個數的最后一位( n % 10 n \% 10 n%10)。

取出最后一位后講這個數除以 10 10 10

將所有取出的“最后一位”累加后,即為所求。

給定一個正整數 x x x,首先計算 x x x十進制下每一位之和 s u m sum sum

  • x % s u m = = 0 x\% sum==0 x%sum==0,則返回 s u m sum sum
  • 否則,返回 ? 1 -1 ?1
  • 時間復雜度 O ( log ? x ) O(\log x) O(logx)
  • 空間復雜度 O ( 1 ) O(1) O(1)

AC代碼

C++
class Solution {
private:inline int getSum(int n) {int ans = 0;while (n) {ans += n % 10;n /= 10;}return ans;}
public:int sumOfTheDigitsOfHarshadNumber(int x) {int sum = getSum(x);return x % sum == 0 ? sum : -1;}
};
Go
package mainfunc getSum(n int) int {ans := 0for n > 0 {ans += n % 10n /= 10}return ans
}func sumOfTheDigitsOfHarshadNumber(x int) int {sum := getSum(x)if x%sum == 0 {return sum}return -1
}
Java
class Solution {private int getSum(int n) {int ans = 0;while (n != 0) {ans += n % 10;n /= 10;}return ans;}public int sumOfTheDigitsOfHarshadNumber(int x) {int sum = getSum(x);return x % sum == 0 ? sum : -1;}
}
Python
class Solution:def getSum(self, n: int) -> int:ans = 0while n:ans += n % 10n //= 10return ansdef sumOfTheDigitsOfHarshadNumber(self, x: int) -> int:sum = self.getSum(x)return sum if x % sum == 0 else -1

同步發文于CSDN和我的個人博客,原創不易,轉載經作者同意后請附上原文鏈接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/140160763

class Solution:def getSum(self, n: int) -> int:ans = 0while n:ans += n % 10n //= 10return ansdef sumOfTheDigitsOfHarshadNumber(self, x: int) -> int:sum = self.getSum(x)return sum if x % sum == 0 else -1

同步發文于CSDN和我的個人博客,原創不易,轉載經作者同意后請附上原文鏈接哦~

Tisfy:https://letmefly.blog.csdn.net/article/details/--------------------------

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

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

相關文章

Github 2024-06-30開源項目日報 Top10

根據Github Trendings的統計,今日(2024-06-30統計)共有10個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量C#項目1Python項目1PowerShell項目1JavaScript項目1Jupyter Notebook項目1TypeScript項目1PHP項目1C++項目1Swift項目1Rust項目1shadcn/ui: 開源…

Laravel介紹與學習入門

Laravel 是一款優雅且功能強大的 PHP Web 開發框架&#xff0c;它被廣泛認為是 PHP 領域內構建現代 Web 應用程序的最佳選擇之一。Laravel 提供了一套簡潔、富有表現力的語法&#xff0c;使得開發者能夠高效地編寫清晰、可維護的代碼。以下是 Laravel 的一些關鍵特點和入門概念…

實戰項目——用Java實現圖書管理系統

前言 首先既然是管理系統&#xff0c;那咱們就要實現以下這幾個功能了--> 分析 1.首先是用戶分為兩種&#xff0c;一個是管理員&#xff0c;另一個是普通用戶&#xff0c;既如此&#xff0c;可以定義一個用戶類&#xff08;user&#xff09;&#xff0c;在定義管理員類&am…

DMA學習筆記

參考文章 https://blog.csdn.net/as480133937/article/details/104927922 DMA簡介 DMA&#xff0c;全稱Direct Memory Access&#xff0c;即直接存儲器訪問。DMAC 即 DMA 控制器&#xff0c;提供了一種硬件的數據傳輸方式&#xff0c;無需 CPU 的介入&#xff0c;可以處理外…

7.6、指針和數組

代碼 #include <iostream> using namespace std;int main() {//指針和數組//利用指針訪問數組中的元素int arr[10] { 1,2,3,4,5,6,7,8,9,10 };cout << "第一個元素為&#xff1a;" << arr[0] << endl;int * p arr;//arr就是數組首地址co…

kaggle量化賽金牌方案(第七名解決方案)(下)

— 無特征工程的神經網絡模型&#xff08;得分 5.34X&#xff09; 比賽進入最后階段&#xff0c;現在是時候深入了解一些關于神經網絡模型的見解了。由于 Kaggle 討論區的需求&#xff0c;我在這里分享兩個神經網絡模型。第一個是 LSTM 模型&#xff0c;第二個是卷積網絡&…

華為機試HJ6質數因子

華為機試HJ6質數因子 題目&#xff1a; 按照從小到大輸出給定數值的質數因子 想法&#xff1a; 遍歷判斷從小到大的數值是否是給定數值的質數因子&#xff0c;是就直接輸出&#xff0c;該方法輸出的數值已經排序好了 import mathinput_number int(input())# 循環判斷提取…

鴻翼FEX文件安全交換系統,打造安全高效的文件擺渡“綠色通道”

隨著數字經濟時代的到來&#xff0c;數據已成為最有價值的生產要素&#xff0c;是企業的重要資產之一。隨著數據流動性的增強&#xff0c;數據安全問題也隨之突顯。尤其是政務、金融、醫療和制造業等關鍵領域組織和中大型企業&#xff0c;面臨著如何在保障數據安全的同時&#…

llm學習-3(向量數據庫的使用)

1&#xff1a;數據讀取和加載 接著上面的常規操作 加載環境變量---》獲取所有路徑---》加載文檔---》切分文檔 代碼如下&#xff1a; import os from dotenv import load_dotenv, find_dotenvload_dotenv(find_dotenv()) # 獲取folder_path下所有文件路徑&#xff0c;儲存在…

【力扣 - 每日一題】3099. 哈沙德數 | 模擬 (Go/C++)

題目內容 如果一個整數能夠被其各個數位上的數字之和整除&#xff0c;則稱之為 哈沙德數&#xff08;Harshad number&#xff09;。給你一個整數 x 。如果 x 是 哈沙德數 &#xff0c;則返回 x 各個數位上的數字之和&#xff0c;否則&#xff0c;返回 -1 。 示例 1&#xff1…

C++Primer Plus 第十四章代碼重用:編程練習,第3題

CPrimer Plus 第十四章代碼重用&#xff1a;編程練習,第3題 編程練習,第3題 提示&#xff1a;寫完文章后&#xff0c;目錄可以自動生成&#xff0c;如何生成可參考右邊的幫助文檔 文章目錄 CPrimer Plus 第十四章代碼重用&#xff1a;編程練習,第3題前言定義一個 QueueTp 模板…

中國國產AI芯片的崛起

一、CUDA的壟斷 當討論半導體行業面臨的挑戰時&#xff0c;你首先想到的是什么&#xff1f;光刻機&#xff1f;3納米或者5納米技術&#xff1f;我們無法生產的完美方形芯片&#xff1f;是的&#xff0c;但也不完全是。 人們經常把半導體芯片歸類為硬件產業&#xff0c;但實際上…

【大模型LLM面試合集】大語言模型基礎_llm概念

1.llm概念 1.目前 主流的開源模型體系 有哪些&#xff1f; 目前主流的開源LLM&#xff08;語言模型&#xff09;模型體系包括以下幾個&#xff1a; GPT&#xff08;Generative Pre-trained Transformer&#xff09;系列&#xff1a;由OpenAI發布的一系列基于Transformer架構…

Linux常用查看日志方法-如使用less查看日志文件

在Linux系統中&#xff0c;查看日志文件是常見的運維任務之一。less命令是一個非常強大的工具&#xff0c;用于查看長文本文件&#xff0c;例如日志文件。它允許你按頁瀏覽文件&#xff0c;并提供了一些便捷的導航和搜索功能。 使用less查看日志文件 假設你有一個日志文件/va…

linux環境安裝elasticsearch緩存數據庫和Kibana客戶端

linux環境安裝elasticsearch緩存數據庫&#xff0c;今天我們安裝7.17.18版本&#xff0c;并分析遇到的問題。 一、elasticsearch安裝運行 1、直接下載 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.17.18-linux-x86_64.tar.gz2、解壓 tar -…

驚艷眼球的視覺盛宴【二】

當晨光初破黎明的靜謐&#xff0c;一片絢爛便悄然鋪展在蔚藍的天際。那一刻&#xff0c;大地蘇醒&#xff0c;萬物復蘇&#xff0c;我們仿佛踏入了一幅活生生的畫卷。霧氣繚繞之中&#xff0c;群山似乎在低語&#xff0c;古樹在輕搖&#xff0c;一切都沐浴在柔和而金黃的光芒之…

如何理解vuex中的每個概念(通俗易懂)

文章目錄 1. 什么是 Vuex&#xff1f;2. Vuex 的四個核心概念 1. 什么是 Vuex&#xff1f; 想象一下&#xff0c;你家里有一個大冰箱&#xff0c;所有家庭成員都可以訪問這個冰箱。每個人都可以往里面放東西&#xff0c;也可以從里面拿東西。這個冰箱就像是 Vuex 中的“狀態”…

戰略流程-麥肯錫企業數字化業務變革成熟度評估模型及案例深度解析

一、企業變革成熟度評估模型 企業變革成熟度診斷模型是一種評估工具&#xff0c;用于全面掃描和評估企業在變革轉型過程中的能力水平。該模型通過一系列量化指標和定性分析&#xff0c;對企業在不同變革領域的成熟度進行評分&#xff0c;從而幫助企業識別在變革過程中的優勢和…

第12天:上下文管理器

今日學習目標 了解上下文管理器的基本概念和作用學習如何使用 with 語句學習如何創建自定義上下文管理器理解上下文管理器的實際應用場景 1. 上下文管理器簡介 上下文管理器是一種用于管理資源的機制&#xff0c;它可以在一段代碼執行前后自動執行一些操作。最常見的上下文管…

QAM MMA

MMA是改進的CMA&#xff0c;有RCA和CMA的優點&#xff0c;還能對相位誤差進行修正。 N 5e5; % 仿真符號數 M 16; % QAM16msg randi([0 M-1],N,1); % 產生隨機符號 tx qammod(msg,M); % QAM調制test_snr 20:5:30; …