水仙花数c语言程序解析,C语言求水仙花数代码解析
原标题:C语言求水仙花数代码解析
水仙花数
“水仙花数”又称为“阿姆斯特朗数”。如果一个n(n≥3)位数的各位数字的n次幂之和等于该数本身,则该数称为“水仙花数”。
问题描述
输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 13 + 53 + 33。
问题分析
根据“水仙花数”的定义,判断一个数是否为“水仙花数”,最重要的是要把给出的三位数的个位、十位、百位分别拆分,并求其立方和(设为s),若s与给出的三位数相等, 三位数为“水仙花数”,反之,则不是。
算法设计
“水仙花数”是指满足某一条件的三位数,根据这一信息可以确定整数的取值范围是 100〜999。对应的循环条件如下:
for(n=10; n<1000; n++)
{
//......
}
对代码的说明:
将n整除以100,得出n在百位上的数字hun。
将(n-i*100)整除以10(或将n先整除以10再对10求模n/10%10),得出n在十位上的数字ten。
将n对10取余,得出n在个位上的数字ind。
求得这三个数字的立方和是否与其本身相等,若相等,则该数为水仙花数。
对于每个位置上的数值将其拆分的算法有很多种,根据不同情况选择不同算法(对于同一问题不同算法的效率有时会相差很多)。
下面是完整的代码:
#include
int main()
{
int hun, ten, ind, n;
printf("结果是:");
for( n=100; n<1000; n++ ) /*整数的取值范围*/
{
hun = n / 100;
ten = (n-hun*100) / 10;
ind = n % 10;
if(n == hun*hun*hun + ten*ten*ten + ind*ind*ind) /*各位上的立方和是否与原数n相等*/
printf("%d ", n);
}
printf("n");
return 0;
}
运行结果:
于是,100~999范围内(三位数中)的“水仙花数”得到:153,370,371,407。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx
本文永久更新链接地址:https://www.linuxidc.com/Linux/2018-11/155571.htm返回搜狐,查看更多
责任编辑:
水仙花数c语言程序解析,C语言求水仙花数代码解析相关推荐
- c语言八数码A星算法代码解析,八数码问题c语言a星算法详细实验报告含代码解析...
八数码问题c语言a星算法详细实验报告含代码解析 (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 一.实验内容和要求 八数码问题:在3 ...
- 认识c语言程序,认识C语言
-一个完整的C语言程序是什么样的?
为了创建完整的 C语言程序需要在 C 源文件中输入代码.任何文本编辑器(比如 Windows 中的"记事本")都可以创建 C 源文件,它们的文件名通常以".c" ...
- java 树状数据算法_使用递归算法结合数据库解析成Java树形结构的代码解析
这篇文章主要介绍了使用递归算法结合数据库解析成Java树形结构的代码解析的相关资料,需要的朋友可以参考下 1.准备表结构及对应的表数据 a.表结构:create table TB_TREE ( CID ...
- 包括循环和分支的C语言程序,《C语言程序设计》分支和循环的C程序设计.ppt
<C语言程序设计>分支和循环的C程序设计.ppt 第三章 分支和循环的C程序设计 问题 一元二次方程根求解算法描述 3.1 程序的基本结构 ⒊循环结构Repetition ⒋复合语句 Co ...
- 数码管c语言程序如何控制,跪求,8255控制数码管,单片机c语言程序;
跪求,8255控制数码管,单片机c语言程序: 答案:3 信息版本:手机版 解决时间 2021-04-29 04:56 已解决 2021-04-28 12:39 8255 PA口--数码管的段选,82 ...
- c语言 程序循环,C语言程序设计-循环例子
<C语言程序设计-循环例子>由会员分享,可在线阅读,更多相关<C语言程序设计-循环例子(28页珍藏版)>请在人人文库网上搜索. 1.C 语言程序设计基础篇,第 7 章 简单程序 ...
- 简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明
学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好.Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器.宏汇编.连接器.库管理和一个功能强大的仿真调试器等在 ...
- c语言程序前言,C语言 程序代码编写规范前言
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...
- c语言程序基本设计,C语言程序的设计基本6.ppt
C语言程序的设计基本6 第六章 本章要点 建立循环程序设计的基本概念和逻辑思维 掌握循环程序设计的方法 6.1 if-goto 语句循环 一般形式: goto 标号: 标号:语句 其中:标号用标识符表 ...
- c语言 程序结集,c语言(结体程序设计).doc
c语言(结体程序设计) C语言程序设计实验报告 实验七.结构体程序设计 [实验目的] (1)掌握结构体类型的概念.定义和使用: (2)掌握结构体数组.结构体指针的定义和使用: [实验内容及步骤] 1. ...
最新文章
- python统计列表内元素个数
- Finding Hotels(牛客国庆集训派对Day7 )(2016ICPC青岛K)(K-D Tree)
- imp库,python进入import内部
- linux中oracle切sys,Linux环境oracle数据库重置sys用户密码
- oracle存储过程捕捉异常后回滚_Oracle存储过程中异常处理应注意的问题
- 使用UTL_SMTP包发送邮件
- windows php redis扩展安装,怎么在Windows下安装PHP的Redis扩展服务
- C语言程序设计题库附答案
- 模板匹配人眼---OpenCV-Python开发指南(33)
- 互联网公司中秋节礼盒大比拼(2019版)
- 2022 年 React Native 的全新架构更新
- 分析注释 sequence_input_layer.py
- 疾病抗争从未停止,糖尿病数据可视化分析
- gettimeofday() 和 clock_gettime()函数 分析小结
- break在java语言中什么意思_在Java语言的控制结构中,break语句是经常用到的语句。在switch语句中break语句的作用是( )_学小易找答案...
- 基于java ssm springboot宠物用品商城系统
- 网站关键词挖掘外链发布工具
- ThingsBoard资产设备总数/离线数/在线数统计
- java员工管理_员工管理系统java版
- 16g电脑内存有什么好处_电脑内存8G和16G区别大吗?
热门文章
- html select下拉菜单长度过长不出滚动条问题解决办法
- flash builder 4.6在debug调试时需要系统安装flashplayer debug版本
- PHP魔术方法小结.md
- libusb-win32学习笔记(一)
- mysql-proxy中间件使用
- VC++实现自定义切换按钮
- Windbg命令学习9,经典死锁(!cs和~~[TID])
- [转载] Python程序输入一个字符串并查找总数的大写和小写字母
- Tomcat 8默认工具manager管理页面访问配置
- eros --- Windows Android真机调试