21xrx.com
2024-12-27 00:44:06 Friday
登录
文章检索 我的文章 写文章
C++编程示例:水仙花数
2023-07-08 15:45:02 深夜i     --     --
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++编程,可以尝试自己实现这个程序,或者对其进行改进和优化。例如,使用递归、分治、位运算等方法,或者使用容器、线程等高级功能。

  
  

评论区

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