首页 > 文章列表 > 使用C++编写一个找到数字的程序,其数字的各位数之和为偶数的程序

使用C++编写一个找到数字的程序,其数字的各位数之和为偶数的程序

c语言 编程关键词: 找到数字 数字各位数之和为偶数
179 2023-09-05

能被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个数字将是答案。

高效方法

一种高效的方法是首先检查具有偶数和的起始数字,并搜索一种模式来找到答案。前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;
}

Output

nth Number with even sum of digits: 26

上述代码的解释

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

结论

在本文中,我们讨论了找到具有偶数位数和的第n个数字的问题,我们可以用两种方法解决这个问题,这在本文中有所介绍。我们还编写了一个C++代码来解决同样的问题。我们可以用其他语言如C、Java、Python等编写这个代码。希望您会发现本文有帮助。