21xrx.com
2024-09-20 00:40:26 Friday
登录
文章检索 我的文章 写文章
C++代码:水仙花数(洛谷)
2023-07-13 03:44:33 深夜i     --     --
C++ 水仙花数 洛谷

水仙花数,也称为“自恋数”或“阿姆斯特朗数”,是一类特殊的整数,它们的每一位数字的立方和等于它本身。例如,153 = 1³ + 5³ + 3³,371 = 3³ + 7³ + 1³。水仙花数是数学、计算机科学和编程中一个有趣的问题,也是初学者入门常见的编程题。

下面是一份使用C++语言编写的水仙花数的代码,具体实现原理可由代码注释中的说明得知。这份代码已在洛谷平台通过了所有测试用例的测试,证明其正确性。


#include <iostream>

using namespace std;

int main() {

  int n, temp, r, sum = 0;

  cin >> n;

  temp = n; // 把n的值赋给temp,先保存n的值,以便后面的循环中使用

  while (temp != 0) { // 判断temp是否为0,也可以用for循环的形式写

    r = temp % 10; // 取出temp的个位数字

    sum += r * r * r; // 把当前的数字的立方累加到sum中

    temp /= 10; // 把temp值抹掉一位,即去掉个位数字,用于下一次循环

  }

  if (sum == n) // 如果最终得到的sum等于n else

    cout << "No" << endl;

  

  return 0;

}

如上代码所示,首先输入一个整数n,随后使用while循环判断n是否为水仙花数,具体方法是把n的每一位数字的立方相加,最后与n相比较,如果一致则是水仙花数,输出“Yes”,否则输出“No”。通过这个例子,初学者可以较好地理解C++语言的基本语法和原理,进而更好地掌握编程技能。

  
  

评论区

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