Open In App

9’s complement of a decimal number

Improve
Improve
Like Article
Like
Save
Share
Report

9’s complement of a decimal number is the subtraction of it’s each digits from 9. Like 1’s complement, 9’s complement is used to subtract a number using addition.
For example, let us compute value of “718 – 123” using 9’s complement and addition. We first find 9’s complement of 718 which is 281. Now we add 281 to 123. We get 404. 9’s complement of this is 595 which is equal to “718 – 123”. So we could find subtraction using addition and 9’s complement.
In case while adding a carry is obtained in the end, also known as the end around carry, it should be added to the answer, removing the carry itself. For example, (83-25) , 9’s complement of 25 is 74 and (83+74 = 157). A carry is obtained, now add it to the number 57, (57+1 = 58) which is the answer.

Given a decimal number n, find 9’s complement of the number. 

Input : 25
Output : 9's complement is : 74

Input : 345.45
Output : 9's complement is : 654.54

Let the number be stored as string. We traverse digits of number and subtract every digit from 9.

C++




// C++ program to find 9's complement of a
// number.
#include<iostream>
using namespace std;
 
void complement(string number)
{
    for (int i=0 ; i < number.length() ; i++ )
        if (number[i] != '.')
            number[i] = '9' - number[i] + '0';
 
    cout << "9's complement is : " << number;
}
 
// Driver code
int main()
{
    string number = "345.45";
    complement(number);
    return 0;
}


Java




// Java program to find 9's complement of a
// number.
 
class GFG{
static void complement(String number1)
{
    char[] number=number1.toCharArray();
    for (int i=0 ; i < number.length ; i++ )
        if (number[i] != '.')
            number[i] = (char)((int)('9') - (int)(number[i]) + (int)('0'));
    System.out.println( "9's complement is : "+String.valueOf(number));
}
 
// Driver code
public static void main(String[] args)
{
    String number = "345.45";
    complement(number);
}
}
//This code is contributed by mits


Python3




# Python3 program to find 9's
# complement of a number.
 
def complement(number):
 
    for i in range(0, len(number)):
        if(number[i] != '.'):
            a = 9 - int(number[i])
            number = (number[:i] +
                     str(a) + number[i + 1:])
 
    print("9's complement is : ", number)
 
 
# Driver code
if __name__=='__main__':
    number = "345.45"
    complement(number)
 
# This code is contributed by
# Sanjit_Prasad


C#




// C# program to find 9's complement of a
// number.
using System;
 
class GFG{
static void complement(string number1)
{
    char[] number=number1.ToCharArray();
    for (int i=0 ; i < number.Length ; i++ )
        if (number[i] != '.')
            number[i] = (char)((int)('9') -
                    (int)(number[i]) + (int)('0'));
    System.Console.WriteLine( "9's complement is : "
                                +new string(number));
}
 
// Driver code
public static void Main()
{
    String number = "345.45";
    complement(number);
}
}
//This code is contributed by mits


PHP




<?php
// PHP program to find 9's complement of a
// number.
 
function complement( $number)
{
    for ( $i=0 ; $i < strlen($number) ; $i++ )
        if ($number[$i] != '.')
            $number[$i] = '9' - $number[$i] + '0';
 
    echo "9's complement is : " , $number;
}
 
// Driver code
    $number = "345.45";
    complement($number);
 
// This code is contributed by anuj_67.
?>


Javascript




<script>
 
// Javascript program to find 9's complement of a
// number.
 
function complement(number)
{
    number = number.split('')
    for (let i=0 ; i < number.length; i++ ){       
        if (number[i] != '.'){
            number[i] = String(9 - Number(number[i]) + 0);
         }
    }
    number = number.join("")
 
    document.write("9's complement is : " + number);
}
 
 
// Driver code
    let number = "345.45";
    complement(number);
 
// This code is contributed by gfgking.
 
</script>


Output:  

9's complement is : 654.54

Time complexity: O(n), where n is the length of the input string.
Auxiliary space: O(n), as the input string is being modified in place and no additional data structure is being used.



Last Updated : 28 Feb, 2023
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads