21xrx.com
2025-06-21 22:39:50 Saturday
文章检索 我的文章 写文章
C++编程示例:水仙花数
2023-07-08 15:45:02 深夜i     44     0
C++编程 水仙花数 循环结构 条件语句 数值计算

水仙花数是指一个n位正整数(n>=3),其各位数字的n次方之和等于该数本身。例如,153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。

下面是一段使用C++编写的示例代码,实现寻找所有的水仙花数:

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
  int n, i, j, k, sum;
  cout << "Enter the number of digits: ";
  cin >> n;
  for (i = pow(10,n-1); i < pow(10,n); i++) {
    sum = 0;
    j = i;
    while (j > 0) {
      k = j % 10;
      sum += pow(k,n);
      j = j / 10;
    }
    if (sum == i)
      cout << i << endl;
  }
  return 0;
}

代码中,首先输入需要寻找的水仙花数的位数n。然后使用for循环,遍历n位数的范围。对于每个数i,使用while循环,依次计算每一位的n次方,并将它们的和sum赋值。最后,判断sum是否等于原数i,如果相等,则该数为一个水仙花数,打印输出。

该示例代码使用了较为简单的循环和条件语句,并且没有使用任何高级算法或数据结构,易于理解和上手。对于初学者来说,是一份不错的练习和学习材料。如果你想练习C++编程,可以尝试自己实现这个程序,或者对其进行改进和优化。例如,使用递归、分治、位运算等方法,或者使用容器、线程等高级功能。

  
  

评论区