Given a decimal number N. The task is to find 10’s complement of the number N.
Example:
Input : 25 Output : 10's complement is : 75 Input : 456 Output : 10's complement is : 544
10’s complement of a decimal number can be found by adding 1 to the 9's complement of that decimal number. It is just like 2s complement in binary number representation.
Mathematically,
10's complement = 9's complement + 1
For example, let us take a decimal number 456, 9's complement of this number will be 999-456 which will be 543. Now 10s complement will be 543+1=544.
Therefore,
10's complement = 10len - num
Where, len = total number of digits in num.
Below is the program to find 10's complement of a given number:
// C++ program to find 10's complement
#include<iostream>
#include<cmath>
using namespace std;
// Function to find 10's complement
int complement(int num)
{
int i,len=0,temp,comp;
// Calculating total digits
// in num
temp = num;
while(1)
{
len++;
num=num/10;
if(abs(num)==0)
break;
}
// restore num
num = temp;
// calculate 10's complement
comp = pow(10,len) - num;
return comp;
}
// Driver code
int main()
{
cout<<complement(25)<<endl;
cout<<complement(456);
return 0;
}
// Java program to find 10's complement
import java.io.*;
class GFG
{
// Function to find 10's complement
static int complement(int num)
{
int i, len = 0, temp, comp;
// Calculating total
// digits in num
temp = num;
while(true)
{
len++;
num = num / 10;
if(Math.abs(num) == 0)
break;
}
// restore num
num = temp;
// calculate 10's complement
comp = (int)Math.pow(10,len) - num;
return comp;
}
// Driver code
public static void main (String[] args)
{
System.out.println(complement(25));
System.out.println(complement(456));
}
}
// This code is contributed
// by chandan_jnu.
# Python3 program to find
# 10's complement
import math
# Function to find 10's complement
def complement(num):
i = 0;
len = 0;
comp = 0;
# Calculating total
# digits in num
temp = num;
while(1):
len += 1;
num = int(num / 10);
if(abs(num) == 0):
break;
# restore num
num = temp;
# calculate 10's complement
comp = math.pow(10, len) - num;
return int(comp);
# Driver code
print(complement(25));
print(complement(456));
# This code is contributed by mits
// C# program to find
// 10's complement
using System;
class GFG
{
// Function to find 10's complement
static int complement(int num)
{
int len = 0, temp, comp;
// Calculating total
// digits in num
temp = num;
while(true)
{
len++;
num = num / 10;
if(Math.Abs(num) == 0)
break;
}
// restore num
num = temp;
// calculate 10's complement
comp = (int)Math.Pow(10, len) - num;
return comp;
}
// Driver code
public static void Main ()
{
Console.WriteLine(complement(25));
Console.WriteLine(complement(456));
}
}
// This code is contributed
// by chandan_jnu.
<?php
// PHP program to find 10's complement
// Function to find 10's complement
function complement($num)
{
$i;
$len = 0;
$comp;
// Calculating total
// digits in num
$temp = $num;
while(1)
{
$len++;
$num = (int)($num / 10);
if(abs($num) == 0)
break;
}
// restore num
$num = $temp;
// calculate 10's complement
$comp = pow(10, $len) - $num;
return $comp;
}
// Driver code
echo complement(25) . "\n";
echo complement(456);
// This code is contributed by mits
?>
<script>
// javascript program to find 10's complement
// Function to find 10's complement
function complement(num) {
var i, len = 0, temp, comp;
// Calculating total
// digits in num
temp = num;
while (true) {
len++;
num = parseInt(num / 10);
if (Math.abs(num) == 0)
break;
}
// restore num
num = temp;
// calculate 10's complement
comp = parseInt( Math.pow(10, len) - num);
return comp;
}
// Driver code
document.write(complement(25)+"<br/>");
document.write(complement(456));
// This code contributed by umadevi9616
</script>
Output:
75 544
Time Complexity: O(logn) where n is the given number
Auxiliary Space: O(1)