21xrx.com
2024-11-08 22:13:06 Friday
登录
文章检索 我的文章 写文章
C++实现水仙花数
2023-07-05 05:03:30 深夜i     --     --
C++语言 水仙花数 循环 条件判断 算法

水仙花数,也叫做自恋数或阿姆斯特朗数,是指一个三位数,其各位数字的立方和等于该数本身。比如153就是一个水仙花数,因为1的立方加5的立方加3的立方等于153。

C++是一种非常流行的编程语言,可以用于实现各种计算任务,包括求解水仙花数。下面介绍一下如何使用C++实现水仙花数的算法。

首先,我们需要确定计算的数字范围。因为水仙花数是一个三位数,因此我们需要遍历所有的三位数,即从100到999。可以使用for循环实现:

for (int i = 100; i <= 999; i++)

  // 计算i是否是水仙花数

接下来需要编写计算水仙花数的代码。根据定义,需要将三位数i的各位数字分离出来,并计算它们的立方和。可以使用%运算符和/运算符来实现:

int a = i / 100; // 百位上的数字

int b = (i / 10) % 10; // 十位上的数字

int c = i % 10; // 个位上的数字

int sum = a*a*a + b*b*b + c*c*c; // 计算立方和

最后,只需要判断sum是否等于i即可确定i是否是水仙花数:

if (sum == i)

  cout << i << "是水仙花数" << endl;

将上述代码放在一起就可以实现求解水仙花数的程序:

#include

using namespace std;

int main() {

  for (int i = 100; i <= 999; i++) {

    int a = i / 100;

    int b = (i / 10) % 10;

    int c = i % 10;

    int sum = a*a*a + b*b*b + c*c*c;

    if (sum == i)

      cout << i << "是水仙花数" << endl;

  }

  return 0;

}

运行程序后,它会输出所有的水仙花数,即153、370、371和407。这个程序可以扩展到更大的数字范围,只需要修改i的取值范围即可。此外,也可以将计算水仙花数的代码封装成函数,方便在其他程序中调用。

  
  

评论区

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