Given a number, the task is to find the Sum of Digits of this number using Command Line Arguments.
Examples:
Input: num = 687 Output: 21 Input: num = 12 Output: 3
Approach:
- Since the number is entered as Command line Argument, there is no need for a dedicated input line
- Extract the input number from the command line argument
- This extracted number will be in string type.
- Convert this number into integer type and store it in a variable, say num
- Declare a variable to store the sum and set it to 0
- Repeat the next two steps till the number is not 0
- Get the rightmost digit of the number with help of remainder ‘%’ operator by dividing it with 10 and add it to sum.
- Divide the number by 10 with help of ‘/’ operator
- Print or return the sum
Program:
C
// C program to find // the sum of digits of a number // using command line arguments #include <stdio.h> #include <stdlib.h> /* atoi */ // Function to Find the sum of digits int findSumOfDigits( int num)
{ // Variable to store the
// the sum of digits
int sum = 0;
// Traverse through the number digit by digit
while (num > 0) {
// Add the last digit of num
// to the sum
sum = sum + (num % 10);
// Remove the last digit from the num
num = num / 10;
}
// Return the sum
return sum;
} // Driver code int main( int argc, char * argv[])
{ int num;
// Check if the length of args array is 1
if (argc == 1)
printf ( "No command line arguments found.\n" );
else {
// Get the command line argument and
// Convert it from string type to integer type
// using function "atoi( argument)"
num = atoi (argv[1]);
// Find the sum of digits and print it
printf ( "%d\n" , findSumOfDigits(num));
}
return 0;
} |
Java
// Java program to find // the sum of digits of a number // using command line arguments class GFG {
// Function to Find the sum of digits
public static int findSumOfDigits( int num)
{
// Variable to store the
// the sum of digits
int sum = 0 ;
// Traverse through the number digit by digit
while (num > 0 ) {
// Add the last digit of num
// to the sum
sum = sum + (num % 10 );
// Remove the last digit from the num
num = num / 10 ;
}
// Return the sum
return sum;
}
// Driver code
public static void main(String[] args)
{
// Check if length of args array is
// greater than 0
if (args.length > 0 ) {
// Get the command line argument and
// Convert it from string type to integer type
int n = Integer.parseInt(args[ 0 ]);
// Find the sum of digits and print it
System.out.println(findSumOfDigits(n));
}
else
System.out.println( "No command line "
+ "arguments found." );
}
} |
Python
# Python program to find the sum of digits of a number def findSumOfDigits(num):
sum = 0
# Traverse through the number digit by digit
while (num > 0 ):
# Add the last digit of num to the sum
sum = sum + (num % 10 )
# Remove the last digit from the num
num = num / / 10
return sum
# take the input num = ( input ())
# convert into integer type n = int (num)
# check the length of number if len (num)> 0 :
print (findSumOfDigits(n))
else :
print ( "No command line" )
|
C++
#include <iostream> #include <cstdlib> // for atoi function using namespace std;
// Function to find the sum of digits int findSumOfDigits( int num)
{ int sum = 0;
while (num > 0) {
sum += num % 10; // add the last digit to the sum
num /= 10; // remove the last digit from num
}
return sum;
} // Main driver code int main( int argc, char * argv[])
{ int num;
// Check if at least one command line argument was provided
if (argc == 1) {
cout << "No command line arguments found." << endl;
return 0; // exit program
}
// Convert the first command line argument to an integer
num = atoi (argv[1]);
// Calculate the sum of digits of the number and output the result
cout << findSumOfDigits(num) << endl;
return 0; // exit program
} |
Output:
Time complexity: O(logn)
Auxiliary Space: O(1)