(篇五)C语言水仙花数的花样求法

2023-05-16

文章目录

        • 一、水仙花数的由来
        • 二、基础版水仙花数
        • 三、进阶版水仙花数
        • 四、高级版水仙花数

本篇主要分析了水仙花数的各种求法。“水仙花数”也叫做“阿姆斯特朗数”,是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,以为153=1³+5³+3³.

一、水仙花数的由来

1、为什么叫水仙花数
经过上面的介绍,都知道了“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。那么为什么会叫“水仙花数”呢?这么好听的名字……
原来,她的兄弟姐妹的名字也个个都好听>>>>>>
三位自幂数:水仙花数
四位自幂数:四叶玫瑰数
五位自幂数:五角星数
六位自幂数:六合数
七位自幂数:北斗七星数
八位自幂数:八仙数
九位自幂数:九九重阳数
十位自幂数:十全十美数
看到这个十全十美数就真的懂了,“水仙花数”果然没叫错。

2、水仙花数的家族

三位的水仙花数共有4个:153,370,371,407;
四位的四叶玫瑰数共有3个:1634,8208,9474;
五位的五角星数共有3个:54748,92727,93084;
六位的六合数只有1个:548834;
七位的北斗七星数共有4个:1741725,4210818,9800817,9926315;
八位的八仙数共有3个:24678050,24678051,88593477

二、基础版水仙花数

1、分析:
(1)因为“水仙花数”是一个三位数,因此可以用3个变量a,b,c来分别表示百位数、十位数、个位数;
(2)准备3个循环来遍历,因为百位数不能是0,所以a从1到9循环;
(3)而十位数和个位数可以是0,所以b、c从0循环到9

2、参考代码:

#include <stdio.h>
#include <math.h>

main()
{
	int a, b, c;
	printf("水仙花数有:\n");
	for(a=1;a<=9;a++)
	{
		for(b=0;b<=9;b++)
		{
			for(c=0;c<=9;c++)
			{
				if(pow(a,3) + pow(b,3) + pow(c,3) == a*100+b*10+c) 
				//pow(a,3)为a的3次方 ;		a*100+b*10+c表示遍历到的那个数 
				{
					printf("%5d",a*100+b*10+c);
				}
			}
		}
	}
}

三、进阶版水仙花数

1、分析:
(1)利用for循环从100循环到999,对每一个数分解出个位、十位、百位;
(2)然后计算各位数字的立方和,判断立方和是否与该数相等;如果相等就输出该数,即为该“水仙花数”

2、参考代码:

#include <stdio.h>
#include <math.h>  //导入数学库,便于次方运算 

main()
{
	int a, b, c, n;  //a,b,c分别为百位、十位、个位上的数;n作为遍历对象	
	printf("水仙花数有:\n");
	for(n=100;n<1000;n++)
	{
		a= n/100;  //取百位上的数赋值给a,多余的数会直接舍去 
		b= (n-a*100)/10;  //取十位上的数,减去百位上的数后除10就是取十位上的数
		c= n - a*100 - b*10;  //减去百位和十位,就只剩下个位上的数了
		if(pow(a,3) + pow(b,3) + pow(c,3) == n) //pow(a,3)为a的3次方 
		{
			printf("%5d",n);
		}
	}
}

四、高级版水仙花数

1、万能的分离数的各位:
(1)下面这个程序可以将任意一个整数的每一位数都分离出来

(2)参考代码:

//万能分离每一位数
#include <stdio.h>

main()
{
	int n, a;
	printf("请输入一个整数:");
	scanf("%d",&n);
	printf("\n%d的每一位数分别是:",n);
	while(n!=0)
	{
		a= n%10;
		n= n/10;
		printf("%3d",a);
	}
 } 

(3)参考结果:
分离每一位
2、把该方法用到求“水仙花数”上:

#include <stdio.h>
#include <math.h>  //导入数学库,便于次方运算 

main()
{
	int a, b, c, n;  //a,b,c分别为百位、十位、个位上的数;n作为遍历对象	
	printf("水仙花数有:\n");
	for(n=100;n<1000;n++)
	{	
		a= n/10/10%10;  //得到百位,比如234/10/10=2;再2%10=2
		b= n/10%10;  //得到十位
		c= n%10;  //得到个位
		if(pow(a,3) + pow(b,3) + pow(c,3) == n) //pow(a,3)为a的3次方 
		{
			printf("%5d",n);
		}
	}
	
}

3、参考结果:
水仙花数

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(篇五)C语言水仙花数的花样求法 的相关文章

  • Mobaxterm 使用图形界面

    redhat 7 yum install firefox xorg x11 xauth mesa libGLES devel x86 64 mesa dri drivers vi etc ssh sshd config X11Forward
  • Linux ❉ Chronyd时间同步服务器详解

    一 介绍 1 简介 集群中节点之间需要时间同步 xff0c Chronyd不依赖外部的时间服务NTP xff0c 在内部搭建时间服务器 Chrony是网络时间协议 xff08 NTP xff09 的一种实现 xff0c 是一个类Unix系统
  • Linux时间延迟平滑对时方案的分析-Ntp和Chrony的不同表现

    系列文章目录 文章目录 系列文章目录前言一 环境信息二 ntpd模式 2 1 版本信息2 2 配置ntpd对时源 2 2 1 配置ntpd服务配置 xff0c 启动ntpd服务2 3 2 查看对时情况2 3 配置ntpd客户端 2 3 1
  • keepalive实现MGR的自动切换(二)

    10 0 0 7 lemon 10 0 0 8 lemon2 10 0 0 9 lemon3 程序代码里只需写一个VIP连接数据库即可 xff0c 后面是连接在哪一台通过 xff0c keepalived的在服务端实现 xff1b 通过检测
  • mysql MGR配置keepalived

    之前写过一篇mysql8 0搭建MGR 在这里 mysql8 0配置MGR 悠游 博客园 cnblogs com 在此基础上配置keepalived 一 安装keepalived 可能会少些包 xff0c 所以配置了网络yum源 所有节点均
  • UltraVNC 使用方法详细说明

    每次修改uvnc settings exe后 xff0c 都要重启Winvnc或者VNC server的进程 配置 否则会如下图 结束Winvnc进程 重新打开winvnc exe 直接点OK 打开UVNC Launch exe 右键SER
  • Linux(Ubuntu)下升级Nginx服务器软件至nginx-1.17.6

    Linux下升级Nginx服务器软件nginx 1 17 6 Nginx 音engine X 是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器 也是一个 IMAP POP3 SMTP 代理服务器
  • 通过SnmpWalk获取服务器状态信息

    简单网络管理协议SNMP xff08 Simple Network Management Protocol xff09 是网络监控和网络设备管理的统一 协议 xff0c 并被所有主流的操作系统和大量网络应用程序所支持 SNMP广泛用于管理和
  • 聊聊几款文件同步备份工具,你更喜欢哪一款呢?

    文件备份对企业的价值 对于绝大多数人而言 xff0c 电脑中的不少文件对于我们来说都非常重要 xff0c 一旦丢失 xff0c 损失将会难以估量 随着网络威胁的不断发展和变得越来越复杂 xff0c 文件传输和托管文件传输之间的区别对于企业来
  • 5分钟学会本地Pypi源搭建

    前言 通常我们在下载 python 包时都会选择清华源或者阿里源 但是当我们的开发环境无法访问外网的时候 xff0c 就需要搭建私有源 今天我们就一起花 5 分钟时间学习如何搭建一个本地私有源 工具选择 搭建本地私有源有很多种方案 xff0
  • Linux基础第十一章:日志文件及如何使用rsyslog搭建小型日志服务器

    一 日志文件 1 日志作用 将系统和应用发生的事件记录至日志中 xff0c 以助于排错和分析使用 记录的内容包括 xff1a 时间 xff0c 地点 xff0c 人物 xff0c 事件 2 常用日志 日志文件位置日志文件说明 var log
  • Linux parted 分区命令详解

    一 概述 通常我们用的比较多的分区工具是fdisk命令 xff0c 但由于fdisk只支持MBR分区 xff0c MBR分区表最大支撑2T的磁盘 xff0c 所以无法划分大于2T的分区 而parted工具可以划分单个分区大于2T的GPT格式
  • 配置docker pull代理

    Dockerd 代理 在执行docker pull时 xff0c 是由守护进程dockerd来执行 因此 xff0c 代理需要配在dockerd的环境中 而这个环境 xff0c 则是受systemd所管控 xff0c 因此实际是system
  • 使用 VaultWarden 搭建个人密码管理器 原先Bitwarden

    0 背景 超过 10 年网龄的我 xff0c 注册过很多网站帐号 xff0c 而出于安全方面的考量 xff08 避免脱库 xff09 xff0c 每个网站的密码都用不同的复杂的随机密码 xff0c 这时候一个密码管理器就显得十分有必要 xf
  • Acronis True Image 2021(最强数据备份与恢复软件)官方正式版V2021.39184 | acronistrueimage教程

    Acronis True Image 2021是由国外知名系统备份及灾难恢复专家安克诺斯 xff08 Acronis xff09 公司重磅打造的一款号称全球最强的数据备份与恢复软件 xff0c 具备完整的网络保护需要具备解决数据安全性 可访
  • 专业画架构图的工具

    https excalidraw com 也可以本地安装
  • mysql jar驱动下载地址

    https repo1 maven org maven2 mysql mysql connector java
  • 在Angular + Bulma CSS框架中定义 Navbar menu 事件

    在Angular 43 Bulma CSS框架中定义 Navbar menu 事件 lt nav class 61 34 navbar 34 role 61 34 navigation 34 aria label 61 34 main na
  • VMware 打开运行一段时间后卡死,CPU占比增至100%

    vmware workstation vmx CPU使用率100 问题描述 打开虚拟机后可以正常运行 xff0c 运行大约20分钟后突然卡死 xff0c 风扇急速转动 xff0c 然后通过任务管理器可以观察到VMware Workstati

随机推荐