Sum of integers upto N with given unit digit
Given two integer N and D, the task is to find the sum of all the integers from 1 to N whose unit digit is D.
Examples:
Input: N = 30, D = 3
Output: 39
3 + 13 + 23 = 39
Input: N = 5, D = 7
Output: 0
Naive approach:
- Traverse from 1 to N.
- If the unit digit of the number is D add the number to the sum.
- Finally print the value of sum.
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; #define ll long long int // Function to return the required sum ll getSum( int n, int d) { ll sum = 0; for ( int i = 1; i <= n; i++) { // If the unit digit is d if (i % 10 == d) sum += i; } return sum; } // Driver code int main() { int n = 30, d = 3; cout << getSum(n, d); return 0; } |
Java
// Java implementation of the approach import java.util.*; class solution { // Function to return the required sum static long getSum( int n, int d) { long sum = 0 ; for ( int i = 1 ; i <= n; i++) { // If the unit digit is d if (i % 10 == d) sum += i; } return sum; } // Driver code public static void main(String args[]) { int n = 30 , d = 3 ; System.out.println(getSum(n, d)); } } |
Python3
# Python3 implementation of the approach # Function to return the required sum def getSum(n, d) : sum = 0 ; for i in range (n + 1 ) : # If the unit digit is d if (i % 10 = = d) : sum + = i return sum # Driver code if __name__ = = "__main__" : n , d = 30 , 3 print (getSum(n, d)) # This code is contributed by Ryuga |
// C# implementation of the approach
using System;
class gfg
{
// Function to return the required sum
public static int getSum(int n, int d)
{
int sum = 0;
for (int i = 1; i <= n; i++) {
// If the unit digit is d
if (i % 10 == d)
sum += i;
}
return sum;
}
// Driver code
public static int Main()
{
int n = 30, d = 3;
Console.WriteLine( getSum(n, d));
return 0;
}
}
PHP
<?php // PHP implementation of the approach // Function to return the required sum function getSum( $n , $d ) { $sum = 0; for ( $i = 1; $i <= $n ; $i ++) { // If the unit digit is d if ( $i % 10 == $d ) $sum += $i ; } return $sum ; } // Driver code $n = 30; $d = 3; echo getSum( $n , $d ); // This code is contributed by Sachin ?> |
Javascript
<script> // java script implementation of the approach // Function to return the required sum function getSum(n, d) { let sum = 0; for (let i = 1; i <= n; i++) { // If the unit digit is d if (i % 10 == d) sum += i; } return sum; } // Driver code let n = 30; let d = 3; document.write( getSum(n, d)); // This code is contributed // by bobby </script> |
39
Time Complexity: O(n) since one traversal of the loop till the number is required to complete all operations hence the overall time required by the algorithm is linear
Auxiliary Space: O(1) since no extra array is used, the space taken by the algorithm is constant
Efficient approach: While D < N update sum = sum + D and D = D + 10. Print the sum in the end.
Below is the implementation of the above approach:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; #define ll long long int // Function to return the required sum ll getSum( int n, int d) { ll sum = 0; while (d <= n) { sum += d; d += 10; } return sum; } // Driver code int main() { int n = 30, d = 3; cout << getSum(n, d); return 0; } |
Java
// Java implementation of the approach class Solution { // Function to return the required sum static long getSum( int n, int d) { long sum = 0 ; while (d <= n) { sum += d; d += 10 ; } return sum; } // Driver code public static void main(String args[]) { int n = 30 , d = 3 ; System.out.print(getSum(n, d)); } } //contributed by Arnab Kundu |
Python3
# Python3 implementation of the approach # Function to return the required sum def getSum(n, d): sum = 0 while (d < = n): sum + = d d + = 10 return sum # Driver code n = 30 d = 3 print (getSum(n, d)) # This code is contributed # by sahishelangia |
C#
// C# implementation of the approach using System; class GFG { // Function to return the required sum static long getSum( int n, int d) { long sum = 0; while (d <= n) { sum += d; d += 10; } return sum; } // Driver code public static void Main() { int n = 30, d = 3; Console.Write(getSum(n, d)); } } // This code is contributed // by Akanksha Rai |
PHP
<?php // PHP implementation of the approach // Function to return the required sum function getSum( $n , $d ) { $sum = 0; while ( $d <= $n ) { $sum += $d ; $d += 10; } return $sum ; } // Driver code $n = 30; $d = 3; echo (getSum( $n , $d )); // This Code is contributed // by Mukul Singh ?> |
Javascript
<script> // java script implementation of the approach // Function to return the required sum function getSum(n, d) { let sum = 0; while (d <= n) { sum += d; d += 10; } return sum; } // Driver code let n = 30; let d = 3; document.write(getSum(n, d)); // This code is contributed // by sravan kumar </script> |
39
Time Complexity: O(n) since one traversal of the loop till the number is required to complete all operations hence the overall time required by the algorithm is linear
Auxiliary Space: O(1) since no extra array is used so the space taken by the algorithm is constant
Please Login to comment...