您好,欢迎来到叨叨游戏网。
搜索
您的当前位置:首页C++中求水仙花数

C++中求水仙花数

来源:叨叨游戏网

    首先,我们所要做的第一步为先理解什么是水仙花数;所谓水仙花数,是指一个三位正整数,其各位数字的立方和等于该整数本身。

如:1*1*1+5*5*5+3*3*3=153。

问题:  编程求出所有的水仙花数。

    这里可以用两种循环语句(do  while语句/for循环语句)可以进行计算;但大体的思维逻辑是先表达出个位,十位,百位数。然后让他满足1*1*1+5*5*5+3*3*3=153这个条件。

   下面先用do while循环语句进行写作(这里需要注意的是调用了一个数学的函数库,即数据库中的pow幂函数):

代码如下  

#include <iostream>
using namespace std;

#include <math.h>  //调用数算函数库
int main()
{
	
	int num = 100;
//num%10 个位数;num/10%10  十位数;num/100   百位数;
	do
	{
		if (pow(num%10,3) + pow(num / 10 % 10,3) + pow(num / 100,3) == num)  
     //pow(主体,幂的次方)
     //对应个位数的三次方+十位数的三次方+百位数的三次方
		{
			cout << num << endl;    //输出水仙花数
		}

		num++;       //进行num=num+1
	} while (num < 1000);   //判断语句,判断是三位数
}

 输出结果如下图

 当用for循环语句写的时候,逻辑与do while的是一个逻辑的;

 代码如下:

#include <iostream>
using namespace std;

#include <math.h>
int main()
{

  for (int n=100; n<1000; n++)
	{
		if (pow(n % 10, 3) + pow(n / 10 % 10, 3) + pow(n / 100, 3) == n)
		{
			cout << n << endl;
		}

	}

这两种方法都可以运行出水仙花数来,按自己需求写,就欧克了。。

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- gamedaodao.net 版权所有 湘ICP备2024080961号-6

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务