Home > Backend Development > C++ > Use C++ to write a program to find a number whose sum of digits is an even number.

Use C++ to write a program to find a number whose sum of digits is an even number.

WBOY
Release: 2023-08-28 23:49:07
forward
1323 people have browsed it

Use C++ to write a program to find a number whose sum of digits is an even number.

An integer that is evenly divisible by 2 is an even number. So in this article, we are given a number n, and we need to find the nth number whose sum is even. The numbers whose sum of the first five numbers is an even number are 2, 4, 6, 8 and 11 respectively. For example −

Input : n = 5
Output : 11
Explanation : First 5 numbers with even sum of digits are 2, 4, 6, 8, 11 i.e 5th
number is 11.

Input : 12
Output : 24
Copy after login

Methods of finding a solution

Now you will learn about two different methods to find a solution to a given problem.

Naive method

The simple way to find the nth number is to iterate over the numbers starting from 1 and check if the sum of the digits for each number is even; if so, increment the counter by 1 , until the value of the counter is equal to n, and finally the nth number will be the answer.

Efficient method

An efficient method is to first check for starting numbers with even sums and search for a pattern to find the answer. The first 20 numbers with even sums are 2, 4, 6, 8, 11, 13, 15, 17, 19, 20, 22, 24, 26, 28, 31, 33, 35, 37, 39 and 40. Observing these first 20 numbers, we find that if the single digit of n is between 0 and 4, then the nth number will be 2*n, and if the nth number is between 5 and 9, then the nth number will be 2*n. numbers will be (2*n 1).

Example

#include <bits/stdc++.h>
using namespace std;
int main () {
   long long int n = 13;
   long long int result;
   // finding the last digit of n
   int last_digit = n % 10;
   // checking if last digit is between 0 and 4
   if (last_digit >= 0 && last_digit <= 4)
      result = 2 * n;
      // checking if last digit is between 5 and 9
   else
      result = (2 * n) + 1;
   cout << "nth Number with even sum of digits: " << result;
   return 0;
}
Copy after login

Output

nth Number with even sum of digits: 26
Copy after login

Explanation of the above code

  • Find the last digit and check if it is between 0 and 4 time; if so, store 2*n as the answer in the result variable.
  • Otherwise, check if the last digit is between 5 and 9; if so, store 2*n 1 as the answer in the result variable.
  • Print the nth number with an even number of digits stored in the result variable.

Conclusion

In this article, we discussed the problem of finding the nth number with an even number of digits and we can solve this problem in two ways, which are discussed in this article introduced in . We also wrote a C code to solve the same problem. We can write this code in other languages ​​such as C, Java, Python, etc. Hope you find this article helpful.

The above is the detailed content of Use C++ to write a program to find a number whose sum of digits is an even number.. For more information, please follow other related articles on the PHP Chinese website!

source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template