21xrx.com
2024-11-08 22:27:31 Friday
登录
文章检索 我的文章 写文章
C++顺序结构题目-NMR
2023-06-29 12:56:15 深夜i     --     --
C++ 顺序结构 题目 NMR

今天我来给大家介绍一道C++顺序结构题目——NMR。这道题目其实很简单,只要掌握好C++的基本语法就可以了。

首先,我们来看一下题目的要求。NMR是一个比较有趣的数字,它的值等于每个数字的立方和,例如153就是NMR,因为1³+5³+3³=153。现在,我们要求输入一个正整数n,输出从1到n之间的所有NMR。如果n过大,而且其中没有NMR,就输出“no”。

我们可以把这道题目分成几个步骤来解决。首先,我们需要获取用户输入的正整数n。这可以通过C++中的cin语句完成,如下所示:


int n;

cin >> n;

然后,我们需要遍历从1到n之间的所有数字,并判断它们是否是NMR。这可以通过循环语句来完成。例如,我们可以使用for循环语句,如下所示:


for (int i = 1; i <= n; i++)

  // 判断数字i是否是NMR

接下来,我们需要编写一个函数来判断一个数字是否是NMR。这个函数的实现很简单,只需要按照题目中的要求计算每个数字的立方和,并将结果与原数字比较即可。例如,下面是一个判断数字是否是NMR的函数的实现:


bool isNMR(int num)

{

  int sum = 0;

  int tmp = num;

  while (tmp != 0)

  {

    int digit = tmp % 10;

    sum += digit * digit * digit;

    tmp /= 10;

  }

  return sum == num;

}

最后,我们只需要在循环中调用这个函数来判断每个数字是否是NMR,并将结果输出即可。例如,下面是完整的程序代码:


#include <iostream>

using namespace std;

bool isNMR(int num)

{

  int sum = 0;

  int tmp = num;

  while (tmp != 0)

  {

    int digit = tmp % 10;

    sum += digit * digit * digit;

    tmp /= 10;

  }

  return sum == num;

}

int main()

{

  int n;

  cin >> n;

  bool hasNMR = false;

  for (int i = 1; i <= n; i++)

  {

    if (isNMR(i))

    

      cout << i << endl;

      hasNMR = true;

    

  }

  if (!hasNMR)

  

    cout << "no" << endl;

  

  return 0;

}

综上所述,如果你掌握了C++的基本语法,那么解决这道题目就很简单了。当然,如果你感觉这个题目过于简单,可以尝试解决一些更加有挑战性的题目,来不断提升自己的编程能力。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复