21xrx.com
2024-12-22 21:35:41 Sunday
登录
文章检索 我的文章 写文章
C++程序求解水仙花数
2023-07-10 16:26:16 深夜i     --     --
C++ 求解 水仙花数

什么是水仙花数? 水仙花数是指一个n位数(n≥3),它的每个位上的数字的n次幂之和等于它本身。比如153=1^3+5^3+3^3。

那么如何用C++程序来求解水仙花数呢?首先,我们需要使用循环语句和条件语句来控制程序的流程。具体而言,应该从1开始依次枚举每一个可能的n位数,并判断它是否是水仙花数。若是,就输出它的值。

实现具体代码如下:


#include <iostream>

using namespace std;

int main()

{

  int n, num, sum, temp;

  cout << "Input an integer n (n>=3): ";

  cin >> n;

  cout << "All " << n << "-digit narcissistic numbers are: " << endl;

  for (int i = pow(10, n - 1); i < pow(10, n); i++) {

    num = i;

    sum = 0;

    while (num) {

      temp = num % 10;

      sum += pow(temp, n);

      num /= 10;

    }

    if (sum == i)

      cout << i << endl;

  }

  return 0;

}

在上述代码中,我们使用了一个for循环语句,分别从最小值(pow(10,n-1))到最大值(pow(10,n)-1)枚举每一个可能的n位数。然后对于每个n位数,使用while循环语句从低位到高位依次计算每一位数字的n次幂之和(sum),并最终判断是否等于n位数本身。如果相等,则输出这个水仙花数。

在运行完程序后,我们可以输入一个整数n,程序将会立即输出所有n位的水仙花数。例如,当n=3时,程序会输出153、370、371、407这几个三位数的水仙花数。当n=4时,程序会输出1634、8208、9474这几个四位数的水仙花数。

总之,使用C++程序求解水仙花数是一项有趣和简单的计算机程序编程,可以让我们更深入地理解循环语句和条件语句等程序基本语法。

  
  

评论区

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