Round the given number to nearest multiple of 10
Given a positive integer n, round it to nearest whole number having zero as last digit.
Examples:
Input : 4722 Output : 4720 Input : 38 Output : 40 Input : 10 Output: 10
Approach:
Let's round down the given number n to the nearest integer which ends with 0 and store this value in a variable a. a = (n / 10) * 10. So, the round up n (call it b) is b = a + 10. If n - a > b - n then the answer is b otherwise the answer is a.
Below is the implementation of the above approach:
C++
// C++ program to round the given // integer to a whole number // which ends with zero. #include <bits/stdc++.h> using namespace std; // function to round the number int round( int n) { // Smaller multiple int a = (n / 10) * 10; // Larger multiple int b = a + 10; // Return of closest of two return (n - a > b - n)? b : a; } // driver function int main() { int n = 4722; cout << round(n) << endl; return 0; } |
Java
// Java Code for Round the given number // to nearest multiple of 10 import java.util.*; class GFG { // function to round the number static int round( int n) { // Smaller multiple int a = (n / 10 ) * 10 ; // Larger multiple int b = a + 10 ; // Return of closest of two return (n - a > b - n)? b : a; } /* Driver program to test above function */ public static void main(String[] args) { int n = 4722 ; System.out.println(round(n)); } } // This code is contributed by Arnav Kr. Mandal. |
Python3
# Python3 code to round the given # integer to a whole number # which ends with zero. # function to round the number def round ( n ): # Smaller multiple a = (n / / 10 ) * 10 # Larger multiple b = a + 10 # Return of closest of two return (b if n - a > b - n else a) # driver code n = 4722 print ( round (n)) # This code is contributed by "Sharad_Bhardwaj". |
C#
// C# Code for Round the given number // to nearest multiple of 10 using System; class GFG { // function to round the number static int round( int n) { // Smaller multiple int a = (n / 10) * 10; // Larger multiple int b = a + 10; // Return of closest of two return (n - a > b - n)? b : a; } // Driver program public static void Main() { int n = 4722; Console.WriteLine(round(n)); } } // This code is contributed by Vt_m. |
PHP
<?php // PHP program to round the given integer // to a whole number which ends with zero. // function to round the number function roundFunation( $n ) { // Smaller multiple $a = (int)( $n / 10) * 10; // Larger multiple $b = ( $a + 10); // Return of closest of two return ( $n - $a > $b - $n ) ? $b : $a ; } // Driver Code $n = 4722; echo roundFunation( $n ), "\n" ; // This code is contributed by ajit ?> |
Javascript
<script> // Javascript Code for Round the given number // to nearest multiple of 10 // function to round the number function round(n) { // Smaller multiple let a = parseInt(n / 10, 10) * 10; // Larger multiple let b = a + 10; // Return of closest of two return (n - a > b - n)? b : a; } let n = 4722; document.write(round(n)); // THIS CODE IS CONTRIBUTED BY MUKESH07. </script> |
Output
4720
Time Complexity: O(1)
Auxiliary Space: O(1)
Another method if n is large:
The above method is good only for Integer or Long MAX value. if the input length is greater than the integer or long-range above method does not work.
We can solve the problem using String.
C++
// C++ code for above approach #include <bits/stdc++.h> using namespace std; // Program to round the number to the // nearest number having one's digit 0 string Round(string s, int n) { string c = s; // last character is 0 then return the // original string if (c[n - 1] == '0' ) return s; // if last character is // 1 or 2 or 3 or 4 or 5 make it 0 else if (c[n - 1] == '1' || c[n - 1] == '2' || c[n - 1] == '3' || c[n - 1] == '4' || c[n - 1] == '5' ) { c[n - 1] = '0' ; return c; } else { c[n - 1] = '0' ; // process carry for ( int i = n - 2 ; i >= 0 ; i--) { if (c[i] == '9' ) c[i] = '0' ; else { int t = c[i] - '0' + 1; c[i] = ( char )(48 + t); break ; } } } string s1 = c; if (s1[0] == '0' ) s1 = "1" + s1; // return final string return s1; } // Driver code int main() { string s= "5748965412485599999874589965999" ; int n=s.length(); // Function Call cout << Round(s,n) << endl; return 0; } // This code is contributed by divyeshrabadiya07 |
Java
// Java code for above approach import java.io.*; class GFG { // Program to round the number to the // nearest number having one's digit 0 public static String round(String s, int n) { char [] c=s.toCharArray(); // last character is 0 then return the // original string if (c[n- 1 ]== '0' ) return s; // if last character is // 1 or 2 or 3 or 4 or 5 make it 0 else if (c[n- 1 ] == '1' || c[n- 1 ] == '2' || c[n- 1 ] == '3' || c[n- 1 ] == '4' || c[n- 1 ] == '5' ) { c[n- 1 ]= '0' ; return new String(c); } else { c[n- 1 ]= '0' ; // process carry for ( int i = n - 2 ; i >= 0 ; i--) { if (c[i] == '9' ) c[i]= '0' ; else { int t= c[i] - '0' + 1 ; c[i]=( char )( 48 +t); break ; } } } String s1= new String(c); if (s1.charAt( 0 ) == '0' ) s1= "1" +s1; // return final string return s1; } // Driver Code public static void main (String[] args) { String s= "5748965412485599999874589965999" ; int n=s.length(); // Function Call System.out.println(round(s,n)); } } |
Python3
# Python3 code for above approach # Function to round the number to the # nearest number having one's digit 0 def Round (s, n): s = list (s) c = s.copy() # Last character is 0 then return the # original string if (c[n - 1 ] = = '0' ): return ("".join(s)) # If last character is # 1 or 2 or 3 or 4 or 5 make it 0 elif (c[n - 1 ] = = '1' or c[n - 1 ] = = '2' or c[n - 1 ] = = '3' or c[n - 1 ] = = '4' or c[n - 1 ] = = '5' ): c[n - 1 ] = '0' return ("".join(c)) else : c[n - 1 ] = '0' # Process carry for i in range (n - 2 , - 1 , - 1 ): if (c[i] = = '9' ): c[i] = '0' else : t = ord (c[i]) - ord ( '0' ) + 1 c[i] = chr ( 48 + t) break s1 = "".join(c) if (s1[ 0 ] = = '0' ): s1 = "1" + s1 # Return final string return s1 # Driver code s = "5748965412485599999874589965999" n = len (s) print ( Round (s, n)) # This code is contributed by rag2127 |
C#
// C# code for above approach using System; class GFG { // Program to round the number to the // nearest number having one's digit 0 static string round( string s, int n) { char [] c = s.ToCharArray(); // last character is 0 then return the // original string if (c[n - 1] == '0' ) return s; // if last character is // 1 or 2 or 3 or 4 or 5 make it 0 else if (c[n - 1] == '1' || c[n - 1] == '2' || c[n - 1] == '3' || c[n - 1] == '4' || c[n - 1] == '5' ) { c[n - 1] = '0' ; return new string (c); } else { c[n - 1] = '0' ; // process carry for ( int i = n - 2 ; i >= 0 ; i--) { if (c[i] == '9' ) c[i] = '0' ; else { int t = c[i] - '0' + 1; c[i] = ( char )(48 + t); break ; } } } string s1 = new string (c); if (s1[0] == '0' ) s1 = "1" + s1; // return final string return s1; } static void Main() { string s= "5748965412485599999874589965999" ; int n=s.Length; // Function Call Console.WriteLine(round(s,n)); } } // This code is contributed by divyesh072019 |
Javascript
<script> // Javascript code for above approach // Program to round the number to the // nearest number having one's digit 0 function round(s, n) { let c = s.split(' '); // Last character is 0 then return the // original string if (c[n - 1] == ' 0 ') return s; // If last character is // 1 or 2 or 3 or 4 or 5 make it 0 else if (c[n - 1] == ' 1 ' || c[n - 1] == ' 2 ' || c[n - 1] == ' 3 ' || c[n - 1] == ' 4 ' || c[n - 1] == ' 5 ' ) { c[n - 1] = ' 0 '; return c.join(""); } else { c[n - 1] = ' 0 '; // process carry for(let i = n - 2 ; i >= 0 ; i--) { if (c[i] == ' 9 ') c[i] = ' 0 '; else { let t = c[i].charCodeAt() - ' 0 '.charCodeAt() + 1; c[i] = String.fromCharCode(48 + t); break; } } } let s1 = c.join(""); if (s1[0] == ' 0') s1 = "1" + s1; // Return final string return s1; } // Driver code let s = "5748965412485599999874589965999" ; let n = s.length; // Function Call document.write(round(s,n)); // This code is contributed by rameshtravel07 </script> |
Output
5748965412485599999874589966000
Time Complexity: O(N) where N is length of string.
Auxiliary Space: O(1)
Please Login to comment...