算法题:如何用一个数字替换另一个数字?

2021年4月13日09:50:57 发表评论 935 次浏览

本文概述

给定数字x和两位数字d1和d2, 将x中的d1替换为d2。

例子:

Input : x = 645, d1 = 6, d2 = 5
Output : 545
We replace digit 6 with 5 in number 645.

Input  : x = 746, d1 = 7, d2 = 8
Output : 846

我们遍历x的所有数字。对于每个数字, 我们检查它是否为d1, 我们相应地更新结果。

C ++

//CPP program to replace a digit with other
//in a given number.
#include <bits/stdc++.h>
using namespace std;
 
int replaceDigit( int x, int d1, int d2)
{
     int result = 0, multiply = 1;
 
     while (x /10> 0)
     {
 
         //Take remainder of number starting from
         //the unit place digit
         int remainder = x % 10;
 
         //check whether it is equal to the digit
         //to be replaced.if yes then replace
         if (remainder == d1)
             result = result + d2 * multiply;
 
         else //else remain as such
             result = result + remainder * multiply;
 
         //Update and move forward from unit place
         //to hundred place and so on.
         multiply *= 10;
         x = x /10; //update the value
     }
 
     //check whether it is equal to the digit
     //to be replaced.if yes then replace
     if (x == d1)
         result = result + d2 * multiply;
 
     else //else remain as such
         result = result + x * multiply;
 
     return result;
}
 
//Driver code
int main()
{
     int x = 645, d1 = 6, d2 = 5;
     cout <<replaceDigit(x, d1, d2) <<endl;
     return 0;
}

Java

//Java program to replace a digit
//with other in a given number.
class GFG
{
     static int replaceDigit( int x, int d1, int d2)
     {
         int result = 0 , multiply = 1 ;
 
         while (x /10> 0 )
         {
 
             //Take remainder of number
             //starting from the unit
             //place digit
             int remainder = x % 10 ;
 
             //check whether it is equal
             //to the digit to be replaced.
             //if yes then replace
             if (remainder == d1)
                 result = result + d2 * multiply;
 
             else //else remain as such
                 result = result + remainder * multiply;
 
             //Update and move forward
             //from unit place to
             //hundred place and so on.
             multiply *= 10 ;
             x = x /10 ; //update the value
         }
 
         //check whether it is equal to the digit
         //to be replaced.if yes then replace
         if (x == d1)
             result = result + d2 * multiply;
 
         else //else remain as such
             result = result + x * multiply;
         return result;
     }
 
     //Driver code
     public static void main(String[] args)
     {
         int x = 645 , d1 = 6 , d2 = 5 ;
         System.out.println(replaceDigit(x, d1, d2));
     }
}
 
//This Code is Contributed by mits

Python3

# Python3 program to replace
# a digit with other
# in a given number.
 
 
def replaceDigit(x, d1, d2):
     result = 0
     multiply = 1
 
     while (x //10> 0 ):
 
         # Take remainder of number
         # starting from the unit
         # place digit
         remainder = x % 10
 
         # check whether it is
         # equal to the digit
         # to be replaced.if yes
         # then replace
         if (remainder = = d1):
             result = (result + d2 *
                       multiply)
 
         else :  # else remain as such
             result = (result + remainder *
                       multiply)
 
         # Update and move forward
         # from unit place to hundred
         # place and so on.
         multiply * = 10
         x = int (x /10 )  # update the value
 
     # check whether it is equal to the digit
     # to be replaced.if yes then replace
     if (x = = d1):
         result = result + d2 * multiply
 
     else :  # else remain as such
         result = result + x * multiply
     return result
 
 
# Driver code
x = 645
d1 = 6
d2 = 5
print (replaceDigit(x, d1, d2))
 
# This Code is contributed
# by mits

C#

//C# program to replace a digit
//with other in a given number
using System;
class GFG
{
     static int replaceDigit( int x, int d1, int d2)
     {
         int result = 0, multiply = 1;
 
         while (x /10> 0)
         {
 
             //Take remainder of number
             //starting from the unit
             //place digit
             int remainder = x % 10;
 
             //check whether it is equal
             //to the digit to be replaced.
             //if yes then replace
             if (remainder == d1)
                 result = result + d2 * multiply;
 
             else //else remain as such
                 result = result + remainder * multiply;
 
             //Update and move forward
             //from unit place to
             //hundred place and so on.
             multiply *= 10;
             x = x /10; //update the value
         }
 
         //check whether it is equal to the digit
         //to be replaced.if yes then replace
         if (x == d1)
             result = result + d2 * multiply;
 
         else //else remain as such
             result = result + x * multiply;
         return result;
     }
 
     //Driver code
     public static void Main()
     {
         int x = 645, d1 = 6, d2 = 5;
         Console.WriteLine(replaceDigit(x, d1, d2));
     }
}
 
//This Code is contributed
//by inder_verma

的PHP

<?php
//PHP program to replace
//a digit with other
//in a given number.
 
function replaceDigit( $x , $d1 , $d2 )
{
     $result = 0; $multiply = 1;
 
     while ( $x /10> 0)
     {
 
         //Take remainder of number
         //starting from the unit
         //place digit
         $remainder = $x % 10;
 
         //check whether it is
         //equal to the digit
         //to be replaced.if yes
         //then replace
         if ( $remainder == $d1 )
             $result = $result + $d2 *
                            $multiply ;
         
         else //else remain as such
             $result = $result + $remainder *
                                 $multiply ;    
 
         //Update and move forward
         //from unit place to hundred
         //place and so on.
         $multiply *= 10;
         $x = $x /10; //update the value
     }
   
     //check whether it is equal to the digit
     //to be replaced.if yes then replace
     if ( $x == $d1 )
         $result = $result + $d2 * $multiply ;
         
     else //else remain as such
         $result = $result + $x * $multiply ;
     return $result ;
}
 
//Driver code
$x = 645; $d1 = 6; $d2 = 5;
echo replaceDigit( $x , $d1 , $d2 );
 
//This Code is contributed
//by inder_verma
?>

输出如下:

545
木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: