21xrx.com
2025-06-12 02:42:37 Thursday
文章检索 我的文章 写文章
C++代码-判断水仙花数
2023-07-05 12:31:40 深夜i     19     0
C++ 代码 水仙花数 判断 循环

水仙花数是指一个三位数,它的各位数字的立方和等于该数本身。比如:153 是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。

在 C++ 中,我们可以使用循环语句和条件语句来判断一个数是否为水仙花数。下面是一段示例代码:

#include <iostream>
using namespace std;
int main()
{
  int num, temp, digit, sum = 0;
  cout << "请输入一个三位数:";
  cin >> num;
  temp = num;
  while (temp != 0)
  {
    digit = temp % 10;
    sum += digit * digit * digit;
    temp /= 10;
  }
  if (num == sum)
    cout << num << " 是一个水仙花数";
  else
    cout << num << " 不是一个水仙花数";
  return 0;
}

注释:

- `num`:输入的三位数

- `temp`:用来保存 `num` 的副本,方便后面的计算

- `digit`:取出 `temp` 的个位数

- `sum`:用来保存各位数字的立方和

代码逐行解释:

1. `#include `:头文件,用于输入输出操作

2. `using namespace std;`:命名空间声明

3. `int main()`:主函数开始

4. `int num, temp, digit, sum = 0;`:定义变量

5. `cout << "请输入一个三位数:";`:输出提示信息

6. `cin >> num;`:输入一个三位数

7. `temp = num;`:将输入的数保存到 `temp` 中

8. `while (temp != 0)`:循环开始,条件为 `temp` 不等于 0

9. `digit = temp % 10;`:取 `temp` 的个位数并保存到 `digit` 中

10. `sum += digit * digit * digit;`:将 `digit` 的立方加到 `sum` 中

11. `temp /= 10;`:去掉 `temp` 的个位数,保留十位和百位

12. `if (num == sum)`:判断是否为水仙花数

13. `cout << num << " 是一个水仙花数";`:输出结果

14. `else`:如果不是水仙花数

15. `cout << num << " 不是一个水仙花数";`:输出结果

16. `return 0;`:主函数结束

使用上述代码可以输入一个三位数,然后判断它是否为水仙花数。如果是,输出提示信息,否则输出相应的提示信息。

C++ 是一种强类型编程语言,可以直接进行数值运算和逻辑运算。水仙花数判断程序就是常见的数值运算和逻辑运算的示例之一。对于初学 C++ 的开发人员来说,这个程序是很好的练手项目,可以更好地理解 C++ 程序语言的语言特性,也可以熟悉常规程序设计中一些基础的逻辑。

  
  

评论区