使用 C++ 查找数字各位数字之和为偶数的数字


一个可以被 2 整除的整数称为偶数。因此,在本文中,我们给定数字 n,我们需要找到第 n 个各位数字之和为偶数的数字。前五个各位数字之和为偶数的数字是 2、4、6、8 和 11。例如 -

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

寻找解决方案的方法

现在您将了解两种不同的程序来找到给定问题的解决方案。

朴素方法

找到第 n 个数字的一个简单解决方案是从 1 开始遍历数字,并检查每个数字的数字之和是否为偶数;如果是,则将计数器加 1,直到计数器的值等于 n,最后那个第 n 个数字将是答案。

高效方法

找到第 n 个数字的一种有效方法是首先检查各位数字之和为偶数的起始数字,并寻找模式以找到答案。前 20 个各位数字之和为偶数的数字是 2、4、6、8、11、13、15、17、19、20、22、24、26、28、31、33、35、37、39 和 40。查看这前 20 个数字,我们发现如果 n 的最后一位数字在 0 到 4 之间,则第 n 个数字将是 2*n,如果第 n 个数字在 5 到 9 之间,则第 n 个数字将是 (2*n + 1)。

示例

#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;
}

输出

nth Number with even sum of digits: 26

上述代码的解释

  • 找到最后一位数字,并检查它是否在 0 到 4 之间;如果是,则将 2*n 作为答案存储在 result 变量中。
  • 否则,检查最后一位数字是否在 5 到 9 之间;如果是,则将 2*n + 1 作为答案存储在 result 变量中。
  • 打印存储在 result 变量中的各位数字之和为偶数的第 n 个数字。

结论

在本文中,我们讨论了查找各位数字之和为偶数的第 n 个数字,我们可以通过本文中了解到的两种方式解决此问题。我们还编写了 C++ 代码来制作程序以解决相同的问题。我们可以用其他语言(如 C、Java、Python 等)编写此代码。希望您觉得本文有所帮助。

更新于:2021-11-26

327 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告

© . All rights reserved.