編寫一個 C++ 程式,將給定數字中的所有 0 替換為 5。
給定一個整數 N,任務是將數字中出現的所有 0 替換為 '5'。但是,以 '0' 開頭的數字不能替換為 '5',因為它保持不變。例如,
輸入-1 −
N= 1007
輸出 −
1557
說明 − 給定數字有兩個零,當用 '5' 替換時,輸出結果為 1557。
輸入-2 −
N = 00105
輸出 −
155
說明 − 由於給定數字以 '0' 開頭,可以忽略,並且在將中間的 0 替換為 '5' 之後,輸出結果為 155。
解決此問題的方法
要將給定數字中的所有 0 替換為 '5',我們可以找到並提取數字的最後一位數字。如果該數字的最後一位數字是 '0',則將其值更改並替換為 '5',然後提取另一位數字。但是,必須忽略給定數字中的任何前導 '0'。
可以使用遞迴方法解決此問題,我們首先提取最後一位數字,然後在提取該數字的其他數字時再次呼叫同一函式。
輸入一個數字 N。
一個整數函式 converToFive(int N) 以數字作為輸入,並透過將所有 0 替換為 '5' 返回修改後的數字。
在基本情況下,如果數字是 '0',則返回 0,否則提取該數字的最後一位數字並檢查,
如果數字的最後一位數字是 '0',則將其值替換為 '5'。
返回遞迴函式,該函式透過除以 '10' 並乘以 '10' 來獲取數字的另一位數字。
返回輸出,該輸出透過將其新增到其中來提取最後一位數字。
示例
#include <bits/stdc++.h>
using namespace std;
int convertToFive(int N) {
if(N==0){
return 0;
}
int last_digit= N%10;
if(last_digit==0)
last_digit=5;
return convertToFive(N/10)*10 +last_digit;
}
int main() {
int N= 14006;
cout << convertToFive(N) << endl;
}輸出
如果執行以上程式碼,則它將列印輸出為:
14556
由於給定數字中有兩個 0,因此在替換數字 14006 後,它將變為 14556。
廣告
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP