原标题: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语言求水仙花数代码解析相关推荐

  1. c语言八数码A星算法代码解析,八数码问题c语言a星算法详细实验报告含代码解析...

    八数码问题c语言a星算法详细实验报告含代码解析 (13页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 14.9 积分 一.实验内容和要求 八数码问题:在3 ...

  2. 认识c语言程序,认识C语言 -一个完整的C语言程序是什么样的?

    为了创建完整的 C语言程序需要在 C 源文件中输入代码.任何文本编辑器(比如 Windows 中的"记事本")都可以创建 C 源文件,它们的文件名通常以".c" ...

  3. java 树状数据算法_使用递归算法结合数据库解析成Java树形结构的代码解析

    这篇文章主要介绍了使用递归算法结合数据库解析成Java树形结构的代码解析的相关资料,需要的朋友可以参考下 1.准备表结构及对应的表数据 a.表结构:create table TB_TREE ( CID ...

  4. 包括循环和分支的C语言程序,《C语言程序设计》分支和循环的C程序设计.ppt

    <C语言程序设计>分支和循环的C程序设计.ppt 第三章 分支和循环的C程序设计 问题 一元二次方程根求解算法描述 3.1 程序的基本结构 ⒊循环结构Repetition ⒋复合语句 Co ...

  5. 数码管c语言程序如何控制,跪求,8255控制数码管,单片机c语言程序;

    跪求,8255控制数码管,单片机c语言程序: 答案:3  信息版本:手机版 解决时间 2021-04-29 04:56 已解决 2021-04-28 12:39 8255 PA口--数码管的段选,82 ...

  6. c语言 程序循环,C语言程序设计-循环例子

    <C语言程序设计-循环例子>由会员分享,可在线阅读,更多相关<C语言程序设计-循环例子(28页珍藏版)>请在人人文库网上搜索. 1.C 语言程序设计基础篇,第 7 章 简单程序 ...

  7. 简单说明c语言程序步骤,C语言的入门简介和三个简单的C语言程序详细说明

    学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好.Keil软件是目前最流行开发80C51系列单片机的软件,Keil提供了包括C编译器.宏汇编.连接器.库管理和一个功能强大的仿真调试器等在 ...

  8. c语言程序前言,C语言 程序代码编写规范前言

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一个好的程序编写规范是编写高质量程序的保证.清晰.规范的源程序不仅仅是方便阅读,更重要的是能够便于检查错误,提高调试效率,从而最终保证软件的质量和可维护性 ...

  9. c语言程序基本设计,C语言程序的设计基本6.ppt

    C语言程序的设计基本6 第六章 本章要点 建立循环程序设计的基本概念和逻辑思维 掌握循环程序设计的方法 6.1 if-goto 语句循环 一般形式: goto 标号: 标号:语句 其中:标号用标识符表 ...

  10. c语言 程序结集,c语言(结体程序设计).doc

    c语言(结体程序设计) C语言程序设计实验报告 实验七.结构体程序设计 [实验目的] (1)掌握结构体类型的概念.定义和使用: (2)掌握结构体数组.结构体指针的定义和使用: [实验内容及步骤] 1. ...

最新文章

  1. python统计列表内元素个数
  2. Finding Hotels(牛客国庆集训派对Day7 )(2016ICPC青岛K)(K-D Tree)
  3. imp库,python进入import内部
  4. linux中oracle切sys,Linux环境oracle数据库重置sys用户密码
  5. oracle存储过程捕捉异常后回滚_Oracle存储过程中异常处理应注意的问题
  6. 使用UTL_SMTP包发送邮件
  7. windows php redis扩展安装,怎么在Windows下安装PHP的Redis扩展服务
  8. C语言程序设计题库附答案
  9. 模板匹配人眼---OpenCV-Python开发指南(33)
  10. 互联网公司中秋节礼盒大比拼(2019版)
  11. 2022 年 React Native 的全新架构更新
  12. 分析注释 sequence_input_layer.py
  13. 疾病抗争从未停止,糖尿病数据可视化分析
  14. gettimeofday() 和 clock_gettime()函数 分析小结
  15. break在java语言中什么意思_在Java语言的控制结构中,break语句是经常用到的语句。在switch语句中break语句的作用是( )_学小易找答案...
  16. 基于java ssm springboot宠物用品商城系统
  17. 网站关键词挖掘外链发布工具
  18. ThingsBoard资产设备总数/离线数/在线数统计
  19. java员工管理_员工管理系统java版
  20. 16g电脑内存有什么好处_电脑内存8G和16G区别大吗?

热门文章

  1. html select下拉菜单长度过长不出滚动条问题解决办法
  2. flash builder 4.6在debug调试时需要系统安装flashplayer debug版本
  3. PHP魔术方法小结.md
  4. libusb-win32学习笔记(一)
  5. mysql-proxy中间件使用
  6. VC++实现自定义切换按钮
  7. Windbg命令学习9,经典死锁(!cs和~~[TID])
  8. [转载] Python程序输入一个字符串并查找总数的大写和小写字母
  9. Tomcat 8默认工具manager管理页面访问配置
  10. eros --- Windows Android真机调试