C用一个数字替换另一个数字的程序
给定数字n,我们必须用另一个给定的数字m替换该数字中的数字x。我们必须寻找该数字,无论该数字是否存在于给定的数字中,如果它存在于给定的数字中,则将该特定数字x替换为另一个数字m。
就像我们给定的数字“123”和m为5,要替换的数字即x为“2”一样,因此结果应为“153”。
示例
Input: n = 983, digit = 9, replace = 6 Output: 683 Explanation: digit 9 is the first digit in 983 and we have to replace the digit 9 with 6 so the result will be 683. Input: n = 123, digit = 5, replace = 4 Output: 123 Explanation: There is not digit 5 in the given number n so the result will be same as the number n.
下面使用的方法如下-
我们将从单位位置开始查找号码
当我们找到要替换的数字时,将结果添加到(replace*d),其中d应该等于1。
如果我们找不到该号码,只需简单地保留该号码即可。
算法
In function int digitreplace(int n, int digit, int replace) Step 1-> Declare and initialize res=0 and d=1, rem Step 2-> Loop While(n) Set rem as n%10 If rem == digit then, Set res as res + replace * d Else Set res as res + rem * d d *= 10; n /= 10; End Loop Step 3-> Print res End function In function int main(int argc, char const *argv[]) Step 1-> Declare and initialize n = 983, digit = 9, replace = 7 Step 2-> Call Function digitreplace(n, digit, replace); Stop
示例
#include <stdio.h> int digitreplace(int n, int digit, int replace) { int res=0, d=1; int rem; while(n) { //从后面找到其余部分 rem = n%10; //检查余数是否等于 //我们要替换的数字。如果是,则更换。 if(rem == digit) res = res + replace * d; //否则不要替换,仅将其存储在res中。 else res = res + rem * d; d *= 10; n /= 10; } printf("%d\n", res); return 0; } //主要功能 int main(int argc, char const *argv[]) { int n = 983; int digit = 9; int replace = 7; digitreplace(n, digit, replace); return 0; }
如果运行上面的代码,它将生成以下输出-
783