c语言打出所有的水仙花数(C语言水仙花数详解版)

 2024-05-07  阅读 928  评论 0

摘要:C语言水仙花数(详解版)输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 13 53 33,接下来我们就来聊聊关于c语言打出所有的水仙花数?以下内容大家不妨参考一二希望能帮到您!c语言打出所有的水仙花数C语言水

C语言水仙花数(详解版)输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,因为:153 = 13 53 33,接下来我们就来聊聊关于c语言打出所有的水仙花数?以下内容大家不妨参考一二希望能帮到您!

c语言打出所有的水仙花数(C语言水仙花数详解版)

c语言打出所有的水仙花数

C语言水仙花数(详解版)

问题描述

输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如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),得出n在十位上的数字ten。
  • 将n对10取余,得出n在个位上的数字ind。
  • 求得这三个数字的立方和是否与其本身相等,若相等,则该数为水仙花数。

对于每个位置上的数值将其拆分的算法有很多种,根据不同情况选择不同算法(对于同一问题不同算法的效率有时会相差很多)。

下面是完整的代码:

1. #include <stdio.h>

2. int main()

3. {

4. int hun, ten, ind, n;

5. printf("result is:");

6. for( n=100; n<1000; n ) /*整数的取值范围*/

7. {

hun = n / 100;

9. ten = (n-hun*100) / 10;

10. ind = n % 10;

11. if(n == hun*hun*hun ten*ten*ten ind*ind*ind) /*各位上的立方和是否与原数n 相等*/

12. printf("%d ", n);

13. }

14. printf("\n");

15. return 0;

17. }

运行结果: result is:153 370 371 407

,

版权声明:xxxxxxxxx;

原文链接:http://cn.tdroid.net/ceecdCz0NCg8FVg.html

发表评论:

管理员

  • 内容266607
  • 积分0
  • 金币0
关于我们
lecms主程序为免费提供使用,使用者不得将本系统应用于任何形式的非法用途,由此产生的一切法律风险,需由使用者自行承担,与本站和开发者无关。一旦使用lecms,表示您即承认您已阅读、理解并同意受此条款的约束,并遵守所有相应法律和法规。
联系方式
电话:
地址:广东省中山市
Email:
注册登录
注册帐号
登录帐号

Copyright © 2022 太卓开发网 Inc. 保留所有权利。 泰达科技网易库网

页面耗时0.0984秒, 内存占用1.33 MB, 访问数据库18次