C语言:水仙花数问题:求1-10000之间所有水仙花数。水仙花数就是满足各位数字的立方和等于它本身的数。使用二重循环编写程序。

该代码示例使用C语言通过遍历1到10000的整数,逐位分离数字并计算立方和,来找出水仙花数(每位数字立方和等于其本身的数)。首先定义数组存储分离的数字,然后通过嵌套循环实现数字分离和立方和计算,最后通过if语句判断是否为水仙花数。经过优化,将逐位分离和立方和计算合并到同一个循环中,提高了效率。

考察知识:

  1. 运算符、逻辑表达式、关系表达式。

  1. 循环结构及嵌套循环。

  1. 分支结构。

  1. 数组。

解题思路:

1、定义数组并将其元素全部赋值为0,用于储存整数逐位分离后的数。

2、利用循环遍历1到10000间所有整数。

3、利用嵌套循环实现整数的逐位分离,接下来以整数1234为例分析嵌套循环程序功能:

a、取个位数字,并将所得数存放到数组中。如第一次循环:a[0]=1234%10=4 第二次循环:a[1]=123%10=3……

b、每次循环,都将丢弃个位数字,成为一个新数字。如第一次循环:1234 / 10 = 123 第二次循环:123 / 10 = 12……

4、计数器更新次数比分离后所得数的数量多1,即多执行了一次j++,故需要j--。

5、利用嵌套循环计算分离后各位数的立方和。

6、嵌套if语句判断i是否为水仙花数。注意符号为“==”而不是“=”。

代码:

方法优化:

逐位分离整数与计算各位数立方和在同一个循环中进行

优化方法代码:

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值