- C++ Programming Examples
- C++ Programming Examples
- C++: Hello World
- C++: Get Input
- C++: Print Integer
- C++: Add two numbers
- C++: Add, Sub, Multiply, Div
- C++: Add Digits
- C++: Find Average and Percentage
- C++: Find Arithmetic Mean
- C++: Sum of n Natural Numbers
- C++: Sum of n Numbers
- C++: Square's Area and Perimeter
- C++: Rectangle's Area and Perimeter
- C++: Triangle's Area and Perimeter
- C++: Area and Circumference
- C++: Find Simple Interest
- C++: Fahrenheit to Celsius
- C++: Celsius to Fahrenheit
- C++: Print Prime Numbers
- C++: Reverse a Number
- C++: Swap Two Numbers
- C++: Print Multiplication Table
- C++: Find Factorial of a Number
- C++: Find Factors of a Number
- C++: Find HCF and LCM
- C++: Create a Calculator
- C++: Count Digits in a Number
- C++: First and Last Digit Sum
- C++: Product of Number Digits
- C++: Sum of Squares of Digits
- C++: Interchange Digits of Number
- C++ if-else Programs
- C++: Check Even or Odd
- C++: Check Prime or Not
- C++: Check Alphabet or Not
- C++: Check Vowel or Not
- C++: Check Leap Year or Not
- C++: Check Reverse equals Original
- C++: Check Perfect Number
- C++: Check Palindrome or Not
- C++: Check Armstrong or Not
- C++: Divisibility Test
- C++: Find Labor Wage
- C++: Find Discounted Price
- C++: Find Shipping Charge
- C++: Find Telephone Bills
- C++: Calculate Student Grade
- C++: Largest of Two Numbers
- C++: Largest of Three Numbers
- C++ Number Conversion
- C++: Decimal to Binary
- C++: Decimal to Octal
- C++: Decimal to Hexadecimal
- C++: Binary to Decimal
- C++: Binary to Octal
- C++: Binary to Hexadecimal
- C++: Octal to Decimal
- C++: Octal to Binary
- C++: Octal to Hexadecimal
- C++: Hexadecimal to Decimal
- C++: Hexadecimal to Binary
- C++: Hexadecimal to Octal
- C++ Pattern Programs
- C++: Pattern Programs
- C++: Print Diamond Pattern
- C++: Print Floyd's Triangle
- C++: Print Pascal's Triangle
- C++ Array Programs
- C++: 1D Array Program
- C++: Linear Search
- C++: Binary Search
- C++: Largest Element in an Array
- C++: Smallest Element in an Array
- C++: Find Second Largest Element
- C++: Find Second Smallest Element
- C++: Sum of All Elements
- C++: Multiply All Elements
- C++: Element in Even Position
- C++: Element in Odd Position
- C++: Print Even Numbers in Array
- C++: Print Odd Numbers in Array
- C++: Count Even or Odd Numbers
- C++: Sum of Even or Odd Numbers
- C++: Count Positive, Negative, Zero
- C++: Reverse an Array
- C++: Insert an Element
- C++: Delete an Element
- C++: Merge two Arrays
- C++: Bubble Sort
- C++: Selection Sort
- C++: Insertion Sort
- C++: Common Elements
- C++: 2D Array Programs
- C++: Add Two Matrices
- C++: Subtract Two Matrices
- C++: Transpose Matrix
- C++: Multiply Two Matrices
- C++: 3D Array Programs
- C++ String Programs
- C++: Print String
- C++: Find String Length
- C++: Compare Two Strings
- C++: Copy String
- C++: String Concatenation
- C++: Reverse a String
- C++: Delete Vowels from a String
- C++: Delete a Word from a String
- C++: Count Characters in a String
- C++: Count Words in a String
- C++: Frequency of Words
- C++: Remove Spaces from Strings
- C++: Sort a String
- C++: Uppercase to Lowercase
- C++: Lowercase to Uppercase
- C++: Swap Two Strings
- C++: Check the Anagram or Not
- C++: Capitalize All Words in a String
- C++: Get Numbers from a String
- C++ File Programs
- C++: Read a File
- C++: Write Content to a File
- C++: Append Data to a File
- C++: Read and Display File
- C++: Copy a File
- C++: Merge Two Files
- Count Characters in a File
- C++: Capitalize Every Word
- C++: List Files in Directory
- C++: Delete a File
- C++: Encrypt and Decrypt a File
- C++ Misc Programs
- C++: Print ASCII Value
- C++: Add Binary Numbers
- C++: Generate Random Numbers
- C++: Print a Smiling Face
- C++: Days into Years and Months
- C++: Add Two Numbers using Pointer
- C++: Print Fibonacci Series
- C++: Generate Armstrong Numbers
- C++: Find nCr and nPr
- C++: Get IP Address
- C++: Print Date and Time
- C++: Shutdown and Restart Computer
- C++ Programming Tutorial
- C++ Tutorial
C++ program to find the sum of the digits of a number
In this article, you will learn and get code for finding the sum of digits of a given number given by the user at run-time using C++ programming. The same program is created with the following approaches:
- Using the while loop, calculate the sum of a number's digits
- Using the for loop, calculate the sum of a number's digits
- Find the sum of a number's digits without using a loop
- Find the sum of the digits of a number using a function
- Using the class and object, compute the sum of a number's digits
To add digits to any number in C++ programming, you have to ask the user to enter the number to add its digits and display the addition result on the output screen, as shown here in the following program.
Using the while loop, find the sum of a number's digits
Let's first start with the "while" loop. That is, the program given below finds and prints the sum of digits of a number using a while loop in C++.
#include<iostream> using namespace std; int main() { int num, rem, sum=0; cout<<"Enter the Number: "; cin>>num; while(num>0) { rem = num%10; sum = sum+rem; num = num/10; } cout<<"\nSum of Digits = "<<sum; cout<<endl; return 0; }
This program was built and runs under the Code::Blocks IDE. Here is its sample run:
Now supply any number as input, say 1234, and press the ENTER key to see the summation result of its digit. The sum of digits of a number 1234 evaluates to 1+2+3+4 or 10, as shown in the output given below:
The dry run of the above program goes like this:
- After receiving the number, say 1234, the variable num=1234.
- Because it is greater than 0, the condition evaluates to be true, and program flow goes inside the while loop.
- The value of num%10, 1234%10, or 4 is set to rem. So rem=4
- sum+rem or 0+4 (the sum's initial value is 0) or 4 is configured to sum
- The new sum value is 4.
- num/10 or 1234/10 or 123 is set to num.
- Again, it is greater than 0, therefore the condition of the while loop evaluates to be true, and again, the program flow goes inside the loop.
- The value of num%10, 123%10, or 3 is set to rem. So rem=3
- sum+rem or 4+3 or 7 is set to sum.
- The new value of sum is now 7.
- The value of num/10, 123/10, or 12 is set to num.
- Because it is greater than 0, the program flow goes inside the loop, and executes all three statements.
- Continue the operation until the value of num is equal to zero.
- After exiting the loop, we'll have a variable sum that holds the sum of the digits of the given number.
- As a result, simply print the sum value as output.
Using the for loop, calculate the sum of a number's digits
The same program is created here using the for loop. Unlike the while loop, the initialization and update parts can also be written under the for loop. Therefore, we have initialized the value of sum=0 as the first statement of the for loop; the second statement is condition checking as done in the while loop; and at last, the update part is written as the third statement under the for loop. Everything else will remain the same.
#include<iostream> using namespace std; int main() { int num, rem, sum; cout<<"Enter the Number: "; cin>>num; for(sum=0; num>0; num=num/10) { rem = num%10; sum = sum+rem; } cout<<"\nSum of Digits = "<<sum; cout<<endl; return 0; }
This program will produce the same output as the previous one.
Find the sum of the number's digits without using a loop
Let's create the same program without using any type of loop. This program uses the goto keyword available in the C++ language, which sends the program flow to the desired position inside the program. To execute this, we have to create a label that says "fresherearth" and use the name of the label to send the program flow to that label provided after the keyword "goto".
#include<iostream> using namespace std; int main() { int num, rem, sum=0; cout<<"Enter the Number: "; cin>>num; fresherearth: rem = num%10; sum = sum+rem; num = num/10; if(num>0) goto fresherearth; cout<<"\nSum of Digits = "<<sum; cout<<endl; return 0; }
All three of the following statements (under the CODESCRSCKER label):
rem = num%10; sum = sum+rem; num = num/10;
gets executed at first. And using the if block, it checks the condition to see whether the value of num is greater than 0 or not. If it evaluates to be true, then using the goto keyword, the program flow goes to the label named CODESCRSCKER and again executes the same three statements. The process continues until the value of num is set to 0.
Find the sum of the number's digits using a function
This program also does the same job as all previous programs have done. The only difference is that this program finds the sum of digits of a number using a user-defined function named findSumOfDigit().
#include<iostream> using namespace std; int findSumOfDigit(int); int main() { int num; cout<<"Enter the Number: "; cin>>num; cout<<"\nSum of Digits = "<<findSumOfDigit(num); cout<<endl; return 0; } int findSumOfDigit(int num) { int sum=0, rem; while(num>0) { rem = num%10; sum = sum+rem; num = num/10; } return sum; }
The function findSumOfDigit() takes the given number as its argument and returns the sum of digits of its argument, which is the number entered by the user at run-time.
Using class and object, compute the sum of the number's digits
This is the last program that uses class and object to find the sum of digits of a number in C++.
#include<iostream> using namespace std; class fresherearth { private: int num, sum, rem; public: void getNumber(); int findSumOfDigit(); }; void fresherearth::getNumber() { cout<<"Enter the Number: "; cin>>num; } int fresherearth::findSumOfDigit() { sum=0; while(num>0) { rem = num%10; sum = sum+rem; num = num/10; } return sum; } int main() { fresherearth c; int sum; c.getNumber(); sum = c.findSumOfDigit(); cout<<"\nSum of Digits = "<<sum; cout<<endl; return 0; }
The same program in different languages
« Previous Program Next Program »