zzulioj1096c语言版答案,郑州轻工业大学oj题解(c语言)1096:水仙花数(函数专题)...
今天给大家介绍一道函数题。水仙花数的进阶函数专题。
水仙花数在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:水仙花数(函数专题)...相关推荐
- c语言银行利率问题答案,郑州轻工业大学oj题解(c语言)1016: 银行利率 简单函数的使用...
相信大家在做题时,应该都会有这样的感觉,明明是一个简单的语法,却要每次都重复写下来,一个语法复杂而且容易出错,改半天却找不到点.特别是对于一些数学基础较差的同学,可能会经常在数学式子上出错. 本期,就 ...
- zzulioj1017C语言答案,郑州轻工业大学oj题解(c语言)1017,1018 if典型题
根据收集到的数据,1017,1018也是错误率比较高,容易卡住的题目. 在讲题目,之前,有必要先把if这一逻辑判断的条件先给大家理清一下. 首先先看两个或者多个if同用的情况: if (条件1) { ...
- c语言大数相加oj,郑州轻工业大学oj题解(c语言)论如何正确的提高正确率:水题合集(四)...
好像离上一篇水题篇过去已经快半个月了~也是好久没有发过这些简单又有趣的题目了呢,今天想起来就总结几道吧. 今天是看龙族的一天~ 花了一下午时间把<龙族2>看了2/3,看书的时间真的过的飞快 ...
- Java郑轻oj_郑州轻工业大学oj题解(c语言)1037: 四则运算
加减乘除的题目我们在前面已经做的够多了,甚至不少同学都已经做到厌倦了,那么,不妨来学习一下如何在代码里进行加减乘除的运算吧. 1037是一道典型的实数与字符结合的题目.也是一道综合性比较强的题目,可能 ...
- 郑州轻工业大学oj平台 c语言 1008 美元和人民币的换算
提示:题目答案均由博主自主编写,想法不一,答案也不一,本答案仅提供参考,如有疑问,可在评论区提问,有时间会解答. 1008: 美元和人民币 时间限制: 1 Sec 内存限制: 30 MB 提交: 5 ...
- 郑州轻工业大学OJ平台题解
前言 本题解是由c/c ++ 和python构成 郑州轻工业大学oj平台点击进入 题解链接 Python ZZULIOJ1001-1005Python解法 ZZULIOJ1106-1010Python ...
- 郑州轻工业大学OJ合集(C语言)【正在整理】
代码仅供参考,为作者初次学习C语言时所写 以下代码均未添加注释 ZZULIOJ平台:http://acm.zzuli.edu.cn/ 学习编程语言,最忌眼高手低. copy后,不要直接粘到编译器里面, ...
- PTA 7-46 请输出郑州轻工业大学OJ平台网址
PTA 7-46 请输出郑州轻工业大学OJ平台网址 分数 5 作者 iwyou 单位 郑州轻工业大学 请输出郑州轻工业大学的OJ平台网址, 你可能不知道网址是什么,不要着急,慢慢往下看. 输入格式: ...
- 7-46 请输出郑州轻工业大学OJ平台网址
7-46 请输出郑州轻工业大学OJ平台网址 请输出郑州轻工业大学的OJ平台网址, 你可能不知道网址是什么,不要着急,慢慢往下看. 输入格式: 本题没有输入. 输出格式: 输出一行字符串为郑州轻工业大学 ...
最新文章
- 010_html事件属性
- 95后实习生的远程办公体验(asp.net mvc\C#技术栈)
- linux基于域的虚拟目录,RHELAS4.0 apache配置之我的小结(虚拟目录,虚拟主机)
- python的继承用法_python之继承中组合用法与菱形继承关系查找法
- 2020 首届云原生微服务大会(PPT)
- Asp.net MVC Linq to SQL Model verification
- Hive中类SQL语言中的where 与having
- 小程序的购物商城源码(前端+后端)
- fedora 18 视频解码器安装
- 如何用VUE从零创建网站
- CVPR等会议论文集检索下载与数据库资源使用
- SREng扫描报告分析
- javaScript重定向页面
- linux7怎么把gpt分区改成MBR,GPT转MBR|硬盘GPT分区转MBR教程(两种办法)
- 哪吒之魔童降世视听语言影评_《哪吒之魔童降世》成功的要素与视听语言
- python opencv 识别圆角矩形_OpenCV—Python 轮廓检测 绘出矩形框(findContours\ boundingRect\rectangle...
- php pdo mysql 超时_为 PDO 增加读写超时
- Python 数据获取(四)—— BeautifulSoup获取小说内容
- android获取指纹信息最新,# android 指纹识别并检测指纹库是否变更
- 【LOJ574】「LibreOJ NOI Round #2」黄金矿工
热门文章
- php模拟登录QQ空间3.0 2014-11-23
- PCL中点云特征描述与提取精通级实例解析
- 正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。...
- 3D游戏编程大师技巧+源码
- 2022年茶艺师(初级)考试题库及茶艺师(初级)作业考试题库
- 如何购买SAP软件?
- 什么是SAP Cloud Platform(SAP云平台) ?
- axure RP文件如何找回_u盘文件丢失怎么办 u盘文件丢失恢复方法【步骤详解】
- 二代测序的原理和简介
- IDEA设置终端Terminal窗口字体和大小