水仙花数”:是指一个三位数,其各位数字的立方和等于该数本身数值。

例如:原数 : abc

个位数: c, 十位数:b ,百位数: a

则水仙花数的要求:abc = a 3 a^3a3 + b 3 b^3b3 + c 3 c^3c3; 满足这样条件的数均为水仙花数,不满足的则不是水仙花数。

思路:

要求水仙花数,首先就要知道其范围要求:三位数,则范围是[100, 999];

另外,需要满足表达式,那么我们就需要求出其对应的个位数,十位数,百位数。

怎么去求得各对应位数呢?假设申请变量 a , b , c 分别代表百十个位,获取一个数,假设为 N。

对于求数存在多种表达方式,现在介绍一种较为容易理解的方法

首先:怎么获取百位呢? 整数 N / 100 本应该带小数,但类型属于 int 型,强制转换为整数,则 百位 a = N /100;(451/100=4)

其次:怎么求十位呢?将三位数除以10并强转,将小数位(原数的个位数)去掉,现在数据的个位便是原数的十位,二位数再取10的余,得到的余数便是原数的十位。表达方式:b = N /10%10;(451/10=45;45%10=5)

然后:怎么求个位呢?在求十位中应该有所发现,求余可以得到。表达式:c = N %10;(451%10=1)

最后:怎么算是否满足呢?将水仙花数的满足表达式进行代码转换就好了。

实现过程:

#include

#include

#include

#include

#include

int main()

{

int i=100; //申请变量并初始化,目的在于控制其范围,也可以后面再赋值;

int a,b,c; //申请变量分别接收百十个位数;

while(i<=999) //进入循环体,控制具体范围,也可以用for循环,表达方式有差异;

{

a=i/100; //求百位数

b=i/10%10; //求十位数

c=i%10; //求个位数

if(i==(pow(a,3)+pow(b,3)+pow(c,3))) //判断是否满足条件的表达式,pow 函数数标准C库函数,用来求幂次方;

printf("%d\n",i);

i++;

}

return 0;

}

接下来我们看一下结果:

接下来,我们尝试 for 循环:

12 #include

13 #include

14 #include

15 #include

16 #include

17 int main()

18 {

19 int i=100;

20 int a,b,c;

21 // while(i<=999)

22 for(i=100;i<1000;i++) //for 循环,注意范围(i<1000)等价于(i<=999)

23 {

24 a=i/100;

25 b=i/10%10;

26 c=i%10;

27 if(i==(pow(a,3)+pow(b,3)+pow(c,3))) //pow(a,3)也可以写成 a*a*a ;

28 {

29 printf("%d\n",i);

30 // i++; //此处是我注释掉的,原程序不需要,请思考如果i++会有什么区别?为什么?

31 }

32 // i++; //此处是我注释掉的,原程序不需要,请思考如果i++会有什么区别?且与30行有什么区别?为什么?

33 }

34 return 0;

35 }

结果如图:

注意:1. 请思考for循环中两处备注与原码的区别,结论异同的原因;

2.for与while 循环时,代码书写区别。

c语言水仙花数while程序,水仙花数--C语言,for循环,while 循环相关推荐

  1. python语言程序设计基础网课-程序设计基础(Python语言)答案

    [单选题]下面代码的输出结果是 ‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬ d = ...

  2. 小程序开发语言python_微信小程序是用什么语言开发的呢

    原标题:微信小程序是用什么语言开发的呢 说到微信小程序可能大部分只是一知半解,您是否清楚小程序是用什么来开发的?如果您不太清楚,那么多美源小程序小编来告诉您小程序开的具体. 微信小程序是什么语言开发的 ...

  3. 微信小程序语言c#,微信小程序推出最新脚本语言WXS,你需要知道的全在这里了...

    原标题:微信小程序推出最新脚本语言WXS,你需要知道的全在这里了 感谢"造程序"(微信ID:zaochengxucom)的授权发布. 责编:陈秋歌,关注微信开发等领域,寻求报道或者 ...

  4. 程序设计基础c语言版大作业,程序设计基础(C语言版)

    本书详细介绍了C语言程序设计所涉及的标记.类型.运算符.表达式.基本输入/输出.顺序结构.选择结构.循环结构.数组类型.指针类型.函数.变量的属性.编译预处理.结构体类型.共同体类型.枚举类型以及文件 ...

  5. 一段c语言的自加程序输出xyz,c语言程序设计基础教程_习题解答2012.doc

    c语言程序设计基础教程_习题解答2012 C语言程序设计基础教程_习题答案2012 习题答案 第1章 填空题 应用程序ONEFUNCC中只有一个函数这个函数的名称是__main 一个函数由__函数头_ ...

  6. c语言51单片机延时程序,51单片机c语言延时.doc

    1,_nop_() 适用于us级的少量延时 标准的C语言中没有空语句.但在单片机的C语言编程中,经常需要用几个空指令产生短延时的效果.这在汇编语言中很容易实现,写几个nop就行了. 在keil C51 ...

  7. c语言 二进制输出_程序员入门C语言,需要掌握的4个基础知识

    C语言是当前所有开发技术中使用较为广泛的一门语言,从它诞生之日起就深受程序员的喜爱.随着C语言的普及,后来的开发语言都或多或少地借鉴或遵循了它的一些模式.另外,C语言是计算机编程领域中使用最早的高级语 ...

  8. 单片机c语言三种经典程序结构,单片机C语言程序的结构和设计精选.docx

    单片机C语言程序的结构和设计精选 实验五 单片机C语言程序的结构和设计一.实验目的1. 掌握单片机C语言的程序结构:2. 掌握单片机C语言程序的编写和调试方法:3. 掌握MSP430FG2553基本I ...

  9. c语言做一个小程序报告,《C语言程序设计实践》课程报告30个小程序组合成一个大程序.doc...

    北方民族大学 课 程 报 告 课 程 名 称: 程序设计实践 专 业 班 级 : 软件工程(2)班 学 生 姓 名 : 李思良 学 号 : 任 课 教 师 : 王晓锋 学 期 : 2015-2016学 ...

最新文章

  1. 常见的数据库端口及查询方法
  2. 又见灵异事件,li中的span右浮动遇到的问题
  3. Symantec Endpoint Protection 11 混乱的版本
  4. Java项目导出源代码jar包在Eclipse中查看中文注释乱码的问题
  5. mysql8中文排序_mysql中utf8编码的中文字段按拼音排序
  6. C语言实现djikstra算法(附完整源码)
  7. url中传递对象参数_在URL参数中传递复杂对象
  8. PyTorch框架学习二——基本数据结构(张量)
  9. 面试题简答题——操作系统相关汇总
  10. java.lang.object源码_第三篇:java.lang.Object 类源码分析
  11. 【JAVA笔记】线程(1):多线程的介绍和实现
  12. android Monkey test测试
  13. 安利一个免费下载VIP文档神器
  14. 5000的台式计算机,预算5000的台式组装机配置清单_预算5000的台式组装机配置
  15. 正斜杠,又称左斜杠,符号是/;反斜杠,也称右斜杠,符号是\。
  16. 惠州学院计算机学院院长,惠州学院计算机科学与工程学院院领导一行来我院参观交流...
  17. c++ socket发送string 、char*字符串,客户端接收到乱码
  18. 一文读懂MySQL常用语法
  19. 某公司公众号任意用户注册漏洞利用
  20. windows计划任务定时任务

热门文章

  1. [Appium]MAC安装Appium
  2. XMind 8 Update 9 安装教程(亲测有效)
  3. Python 内置函数—判断素数
  4. Rstudio入门教程
  5. 数字图像处理:直方图均衡(Histogram Equalization)的原理及处理介绍
  6. 使用putty等ssh工具第一次远程登录树莓派,填默认账号密码pi,raspberry,报错:Access denied
  7. [转] 给网站上传的图片盖章
  8. 中国移动,中国电信免费公共wifi密码
  9. RS—|下载Landsat8/9数据并进行ENVI大气校正(FLAASH模型)
  10. 使用GPO禁用本地管理员帐户