今天给大家介绍一道函数题。水仙花数的进阶函数专题。

水仙花数在OJ的题目里也算的上是趣味性比较强,相对难度比较简单的题目了。大家在看本文之前也可以先回顾一下1027:水仙花数的题解。

本题相对难度较高,如果对函数还不够理解的同学可以选择放弃和其他同学一起学习。

1096: 水仙花数(函数专题)

- 题目描述

春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的:

“水仙花数”是指一个三位数,它的各位数字的立方和等于其本身,比如:153=13+53+33。

现在要求输出所有在m和n范围内的水仙花数。

要求程序定义一个narcissus()函数和一个main()函数,narcissus()函数判断一个整数n是否为水鲜花数,其余功能在main()函数中实现。

int narcissus(int n)

{

//判断n是否为水仙花数, 若是函数返回1,否则返回0

}

对于C/C++代码的提交,本题要求必须通过定义narcissus函数和main函数实现,否则,提交编译错误,要提交完整的程序。

- 输入

输入数据有多组,每组占一行,包括两个整数m和n(100<=m<=n<=999)。

- 输出

对于每个测试实例,要求输出所有在给定范围内的水仙花数,就是说,输出的水仙花数必须大于等于m,并且小于等于n,如果有多个,则要求从小到大排列在一行内输出,之间用一个空格隔开;

如果给定的范围内不存在水仙花数,则输出no;

每个测试实例的输出占一行。

#include

int narcissus(int n)

{

int a,b,c;

a = n / 100;

b = n / 10 % 10;

c = n % 10 % 10;

if(n==a*a*a+b*b*b+c*c*c)

return 1;

else

return 0;

}

int main()

{

int m, n, i, find=0;

while(scanf("%d%d", &m, &n)!=EOF){

find=0;

for(i=m; i<=n; i++){

if( narcissus(i)==1 ){

find++;

if(find==1)printf("%d", i);

else printf(" %d", i);

}

}

if(find==0){

printf("no");

}

printf("\n");

}

return 0;

}

- 代码解析:

本题的难度应该不在函数的描写上,而在main()函数对是否存在水仙花数的判断上,下面的解析会有轻重,如果对某段代码不够了解的同学可以直接在下面评论区提出。

首先直接从main函数讲起,待需要进行判断水仙花数时再解释函数。

根据题目要求,输入数据有多组,则这里明显需要用到循环进行输入,数据有多组说明循环的次数不确定,所以这里适用于1079的多实例例子,如果忘记了的同学可以回顾一下之前的题解。

根据题目要求的m,和n分别是区间的两个点,这里要求的是我们找出这个区间内的水仙花数,所以,我们还需要再写一个循环,寻找位于这个区间的水仙花数。

既然这里需要寻找水仙花数了,那么就需要我们开始写计算过程了。由于题目是函数专题,我们这里把计算过程写进函数中。这里定义的narcissus() 函数题目要求我们判断:判断n是否为水仙花数, 若是函数返回1,否则返回0。因此,我们在使用与1027同样的判断过程后,让其在输出后再次判断,如果是水仙花数则返回1,如果不是则返回0。

函数写完后,我们则要在main函数()中使用他了。根据题目要求我们目的是要输出水仙花数或者输出0。那么我们首先用函数进行判断。因为函数内部已经进行过水仙花数的判断了。我们直接根据判断结果进行输出即可。

如果函数返回1,则输出这个数;如果函数全部返回0,则输出no。要注意这两句话的重点。要全部数判断完后再去判断是否没有水仙花数。所以这里我们添加一个参数来作为判断,判断这个区间是否有水仙花数,当我们判断到有一个数是水仙花数了,就把负责记录判断的数+1。

待我们所有的数判断完后,如果没有水仙花数,则用来判断的参数find仍为初始值0,判断完输出“no”即可。

注意的易错点:

谈易错点前先给大家看张截图。。。

做题记录

1.注意空格。每个水仙花数之间要有空格,不能直接连续输出

2.注意判断没有水仙花数一定要在判断水仙花数的循环结束后再判断,不然会重复输出多个no。

3.整个while循环走完后记得加个换行。。。不然会导致下一次区间判断的值与上次重叠导致答案错误。

4.每次判断水仙花数的循环后,判断的值一定要归初始值0。不然会影响下次循环的判断。

这次的教程比较长比较复杂,但也自认相对比较详细了,看完肯定会有不少收获,希望大家都能耐心看完。另外看完后请右下方点个赞支持一下。码字不易~

zzulioj1096c语言版答案,郑州轻工业大学oj题解(c语言)1096:水仙花数(函数专题)...相关推荐

  1. c语言银行利率问题答案,郑州轻工业大学oj题解(c语言)1016: 银行利率 简单函数的使用...

    相信大家在做题时,应该都会有这样的感觉,明明是一个简单的语法,却要每次都重复写下来,一个语法复杂而且容易出错,改半天却找不到点.特别是对于一些数学基础较差的同学,可能会经常在数学式子上出错. 本期,就 ...

  2. zzulioj1017C语言答案,郑州轻工业大学oj题解(c语言)1017,1018 if典型题

    根据收集到的数据,1017,1018也是错误率比较高,容易卡住的题目. 在讲题目,之前,有必要先把if这一逻辑判断的条件先给大家理清一下. 首先先看两个或者多个if同用的情况: if (条件1) { ...

  3. c语言大数相加oj,郑州轻工业大学oj题解(c语言)论如何正确的提高正确率:水题合集(四)...

    好像离上一篇水题篇过去已经快半个月了~也是好久没有发过这些简单又有趣的题目了呢,今天想起来就总结几道吧. 今天是看龙族的一天~ 花了一下午时间把<龙族2>看了2/3,看书的时间真的过的飞快 ...

  4. Java郑轻oj_郑州轻工业大学oj题解(c语言)1037: 四则运算

    加减乘除的题目我们在前面已经做的够多了,甚至不少同学都已经做到厌倦了,那么,不妨来学习一下如何在代码里进行加减乘除的运算吧. 1037是一道典型的实数与字符结合的题目.也是一道综合性比较强的题目,可能 ...

  5. 郑州轻工业大学oj平台 c语言 1008 美元和人民币的换算

    提示:题目答案均由博主自主编写,想法不一,答案也不一,本答案仅提供参考,如有疑问,可在评论区提问,有时间会解答. 1008: 美元和人民币 时间限制: 1 Sec  内存限制: 30 MB 提交: 5 ...

  6. 郑州轻工业大学OJ平台题解

    前言 本题解是由c/c ++ 和python构成 郑州轻工业大学oj平台点击进入 题解链接 Python ZZULIOJ1001-1005Python解法 ZZULIOJ1106-1010Python ...

  7. 郑州轻工业大学OJ合集(C语言)【正在整理】

    代码仅供参考,为作者初次学习C语言时所写 以下代码均未添加注释 ZZULIOJ平台:http://acm.zzuli.edu.cn/ 学习编程语言,最忌眼高手低. copy后,不要直接粘到编译器里面, ...

  8. PTA 7-46 请输出郑州轻工业大学OJ平台网址

    PTA 7-46 请输出郑州轻工业大学OJ平台网址 分数 5 作者 iwyou 单位 郑州轻工业大学 请输出郑州轻工业大学的OJ平台网址, 你可能不知道网址是什么,不要着急,慢慢往下看. 输入格式: ...

  9. 7-46 请输出郑州轻工业大学OJ平台网址

    7-46 请输出郑州轻工业大学OJ平台网址 请输出郑州轻工业大学的OJ平台网址, 你可能不知道网址是什么,不要着急,慢慢往下看. 输入格式: 本题没有输入. 输出格式: 输出一行字符串为郑州轻工业大学 ...

最新文章

  1. 010_html事件属性
  2. 95后实习生的远程办公体验(asp.net mvc\C#技术栈)
  3. linux基于域的虚拟目录,RHELAS4.0 apache配置之我的小结(虚拟目录,虚拟主机)
  4. python的继承用法_python之继承中组合用法与菱形继承关系查找法
  5. 2020 首届云原生微服务大会(PPT)
  6. Asp.net MVC Linq to SQL Model verification
  7. Hive中类SQL语言中的where 与having
  8. 小程序的购物商城源码(前端+后端)
  9. fedora 18 视频解码器安装
  10. 如何用VUE从零创建网站
  11. CVPR等会议论文集检索下载与数据库资源使用
  12. SREng扫描报告分析
  13. javaScript重定向页面
  14. linux7怎么把gpt分区改成MBR,GPT转MBR|硬盘GPT分区转MBR教程(两种办法)
  15. 哪吒之魔童降世视听语言影评_《哪吒之魔童降世》成功的要素与视听语言
  16. python opencv 识别圆角矩形_OpenCV—Python 轮廓检测 绘出矩形框(findContours\ boundingRect\rectangle...
  17. php pdo mysql 超时_为 PDO 增加读写超时
  18. Python 数据获取(四)—— BeautifulSoup获取小说内容
  19. android获取指纹信息最新,# android 指纹识别并检测指纹库是否变更
  20. 【LOJ574】「LibreOJ NOI Round #2」黄金矿工

热门文章

  1. php模拟登录QQ空间3.0 2014-11-23
  2. PCL中点云特征描述与提取精通级实例解析
  3. 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。...
  4. 3D游戏编程大师技巧+源码
  5. 2022年茶艺师(初级)考试题库及茶艺师(初级)作业考试题库
  6. 如何购买SAP软件?
  7. 什么是SAP Cloud Platform(SAP云平台) ?
  8. axure RP文件如何找回_u盘文件丢失怎么办 u盘文件丢失恢复方法【步骤详解】
  9. 二代测序的原理和简介
  10. IDEA设置终端Terminal窗口字体和大小