檢查一個數字是否以另一個數字結尾
一個典型的程式設計挑戰是確定一個數字是否以另一個數字結尾。為了解決這個問題,你必須識別給定數字的最後幾位,並檢查它們是否與另一個數字相符。許多應用程序,包括資料處理、字串操作和數值分析,經常涉及這種操作。程式設計方法包括將數字轉換為字串、模運算和邏輯運算子的使用,用於解決這個挑戰。對於想要在操作數字和解決演算法問題方面變得更好的初學者和中級程式設計師來說,這個主題應該是有興趣的。
方法
有多種方法可以檢查一個數字是否以另一個數字結尾。以下是兩種常見的方法 -
使用取模運算子(%)
使用字串轉換
#方法1:使用取模運算子(%)
如果兩個數字被分割,取模運算子回傳餘數。利用取模運算符,以第二個數字作為除數,我們可以確定一個數字是否以另一個數字結尾。如果結果等於第二個數字,則第一個數字以第二個數字結尾。
常用的數學運算子稱為取模運算符,它會傳回除法運算的餘數,並以符號%表示。使用取模運算子來驗證一個數是否以另一個數結尾是一種有用的應用。
我們可以使用模運算子來取得一個數"n"除以另一個數"m"後的剩餘值,以確定這兩個數是否連續。如果餘數等於m,則n以m結尾。如果不等於m,則不是。
文法
這個方法的語法如下 −
檢查一個數字是否以另一個數字結尾的函數
bool endsWith(int number, int ending) { int digits = floor(log10(ending)) + 1;
取得結束數字的位數
int divisor = pow(10, digits);
計算除數
int remainder = number % divisor;
計算餘數
return remainder == ending; }
如果餘數等於結束數字,則傳回true
#在這裡,number 是原始數字,ending 是檢查是否在 number 的末尾的數字。表達式 floor(log10(ending)) 1 計算了 ending 的位數,而 pow(10, digits) 計算了除數。然後使用取模運算子 % 計算了 number 除以 divisor 的餘數。如果餘數等於 ending,則函數傳回 true,表示 number 以 ending 結尾。
演算法
模運算子在以下的C 過程中被用來確定一個整數是否以另一個數字結尾 −
步驟 1 - 輸入 num 和 end Num,這兩個要進行比較的數字。
第二步 - 使用模運算子(%)計算num除以10的餘數部分。
步驟 3 − 如果數字以結束數字結尾,且餘數等於結束數字,則傳回 true。
步驟4 - 如果不是,則將數字除以10,並重複步驟1-2,直到數字等於0。
步驟5 - 如果迴圈在沒有匹配的情況下結束,數字不以end Num結尾,因此傳回false。
範例 1
使用取模運算子檢查一個數字是否以另一個數字結尾的範例 −
在這個範例中,endsWith函數接受兩個整數參數number和ending。然後使用取模運算子%來確定數字的最後一位是否等於ending。如果是,則函數傳回true,否則傳回false。
在呼叫endsWith方法之前,我們先在主函數中定義了number和ending。如果該方法回傳true,我們印出一條訊息,說明該數字以ending結尾。如果不是,則列印一則訊息,表示該數字不以ending結尾。
要注意的是,這只是一個非常簡單的例子,有許多不同的方法(如字串操作方法)可以確定一個數字是否以另一個數字結尾。取模運算子是一種受歡迎且有效的技術。
#include <iostream> using namespace std; bool endsWith(int number, int ending) { return (number % 10) == ending; // Check if last digit is equal to ending } int main() { int number = 12345; int ending = 5; if (endsWith(number, ending)) { cout << number << " ends with " << ending << endl; } else { cout << number << " does not end with " << ending << endl; } return 0; }
輸出
12345 ends with 5
方法二:使用字串轉換
使用字串操作函數,這種技術透過將兩個整數轉換為字串來檢查它們的末尾是否匹配。一種常見的方法是使用to_string()函數將數字轉換為字串,然後找到第一個字串的最後幾個字元是否與第二個字串的最後幾個字元相符。
文法
以下是在C 中檢查一個數字是否以另一個數字結尾的字串轉換方法的語法,不包含實際程式碼:
將數字轉換為字串
string num1_str = to_string(num1); string num2_str = to_string(num2);
檢查字串的最後幾個字元是否相等
bool ends_with = num1_str.substr(num1_str.size() - num2_str.size()) == num2_str;
演算法
這裡有一個C 演算法,用來確定一個數字是否以另一個數字結尾 −
第一步 - 開始時為這兩個整數建立字串。
步驟 2 - 假設第二個整數稱為 n,確定其長度。
步骤 3 - 如果第一个数字的长度小于 n,则返回 false。
步骤 4 − 将 substr 方法应用于第一个数字,以提取最后 n 位数字。
第五步 - 使用stoi方法将第二个数字和检索到的子字符串转换为整数。比较这两个整数
步骤6 - 如果它们相等,则返回true。如果不相等,则返回false。
Example 2
使用 to_string() 函数将这两个数字转换为字符串。然后使用 substr() 函数提取第一个字符串的最后几个字符,使其与第二个字符串的长度相匹配。然后使用 == 运算符将这些提取的字符与第二个字符串进行比较。
#include <iostream> #include <string> using namespace std; int main() { int num1 = 123456; int num2 = 56; string str1 = to_string(num1); string str2 = to_string(num2); if (str1.substr(str1.length() - str2.length()) == str2) { cout << "Number 1 ends with number 2" << endl; } else { cout << "Number 1 does not end with number 2" << endl; } return 0; }
输出
Number 1 ends with number 2
结论
总之,使用substr()函数比较每个字符串的最后几个字符,或者使用模运算来分离每个数字的最后几位数并直接比较它们,这两种方法都可以判断一个数字是否以另一个数字结尾。这两种策略都很有效,并且可以使用基本的C++编程结构来实践。许多需要模式匹配的数值和计算应用都可以从这个任务中受益。
以上是檢查一個數字是否以另一個數字結尾的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

C語言數據結構:樹和圖的數據表示與操作樹是一個層次結構的數據結構由節點組成,每個節點包含一個數據元素和指向其子節點的指針二叉樹是一種特殊類型的樹,其中每個節點最多有兩個子節點數據表示structTreeNode{intdata;structTreeNode*left;structTreeNode*right;};操作創建樹遍歷樹(先序、中序、後序)搜索樹插入節點刪除節點圖是一個集合的數據結構,其中的元素是頂點,它們通過邊連接在一起邊可以是帶權或無權的數據表示鄰

文件操作難題的真相:文件打開失敗:權限不足、路徑錯誤、文件被佔用。數據寫入失敗:緩衝區已滿、文件不可寫、磁盤空間不足。其他常見問題:文件遍歷緩慢、文本文件編碼不正確、二進製文件讀取錯誤。

C語言函數是代碼模塊化和程序搭建的基礎。它們由聲明(函數頭)和定義(函數體)組成。 C語言默認使用值傳遞參數,但也可使用地址傳遞修改外部變量。函數可以有返回值或無返回值,返回值類型必須與聲明一致。函數命名應清晰易懂,使用駝峰或下劃線命名法。遵循單一職責原則,保持函數簡潔性,以提高可維護性和可讀性。

C語言函數名定義包括:返回值類型、函數名、參數列表和函數體。函數名應清晰、簡潔、統一風格,避免與關鍵字衝突。函數名具有作用域,可在聲明後使用。函數指針允許將函數作為參數傳遞或賦值。常見錯誤包括命名衝突、參數類型不匹配和未聲明的函數。性能優化重點在函數設計和實現上,而清晰、易讀的代碼至關重要。

C35 的計算本質上是組合數學,代表從 5 個元素中選擇 3 個的組合數,其計算公式為 C53 = 5! / (3! * 2!),可通過循環避免直接計算階乘以提高效率和避免溢出。另外,理解組合的本質和掌握高效的計算方法對於解決概率統計、密碼學、算法設計等領域的許多問題至關重要。

C語言函數是可重複利用的代碼塊,它接收輸入,執行操作,返回結果,可將代碼模塊化提高可複用性,降低複雜度。函數內部機制包含參數傳遞、函數執行、返回值,整個過程涉及優化如函數內聯。編寫好的函數遵循單一職責原則、參數數量少、命名規範、錯誤處理。指針與函數結合能實現更強大的功能,如修改外部變量值。函數指針將函數作為參數傳遞或存儲地址,用於實現動態調用函數。理解函數特性和技巧是編寫高效、可維護、易理解的C語言程序的關鍵。

算法是解決問題的指令集,其執行速度和內存佔用各不相同。編程中,許多算法都基於數據搜索和排序。本文將介紹幾種數據檢索和排序算法。線性搜索假設有一個數組[20,500,10,5,100,1,50],需要查找數字50。線性搜索算法會逐個檢查數組中的每個元素,直到找到目標值或遍歷完整個數組。算法流程圖如下:線性搜索的偽代碼如下:檢查每個元素:如果找到目標值:返回true返回falseC語言實現:#include#includeintmain(void){i

C語言多線程編程指南:創建線程:使用pthread_create()函數,指定線程ID、屬性和線程函數。線程同步:通過互斥鎖、信號量和條件變量防止數據競爭。實戰案例:使用多線程計算斐波那契數,將任務分配給多個線程並同步結果。疑難解答:解決程序崩潰、線程停止響應和性能瓶頸等問題。
