Java和C语言分别实现水仙花数及拓展代码
目录
- 前言
- 一、水仙花数
- 1.代码(Java)
- 2.运行结果(Java)
- 3.代码(C语言)
- 4.运行结果(C语言)
- 二、拓展
- 1.代码(Java)
- 2.运行结果(Java)
- 3.代码(C语言)
- 4.运行结果(C语言)
前言
求出0~999之间的所有“水仙花数”并输出。(“水仙花数”是指一个三位数,其各位数字的立方和确好等于该数本身,如;153=1+5+3?,则153是一个“水仙花数”。)
一、水仙花数
因为水仙花数是三位数,所以我们把范围定为100~999。
1.代码(Java)
public class Num {public static void main(String[] args) {for(int n = 100; n <= 999; n++){int count = 0; int tmp = n; while(tmp != 0){count++; tmp = tmp/10; }tmp = n; int sum = 0; while(tmp != 0){sum += Math.pow(tmp%10,count); tmp = tmp/10; }if(sum == n){System.out.println(sum); }}}}
2.运行结果(Java)

文章图片
3.代码(C语言)
其中的一种方法,只输出水仙花数,下文会进行拓展。
#include int main(){ int n = 0; int a, b, c = 0; printf("水仙花数为:\n"); for (n = 100; n <= 999; n++) {a = n / 100; b = n / 10 % 10; c = n % 100 % 10; if (n == a * a * a + b * b * b + c * c * c)printf("%d\n", n); } return 0; }
4.运行结果(C语言)

文章图片
二、拓展
已知三位自幂数为水仙花数,一位自幂数为独身数,不存在二位自幂数,以此类推还有四叶玫瑰数,五角星数,六合数,北斗七星数,八仙数,九九重阳数,十全十美数的自幂数。
求出0-100000中的自幂数?
只要将上文代码稍微改下数值就可以实现。
1.代码(Java)
public class Num {public static void main(String[] args) {for(int n = 0; n <= 100000; n++){int count = 0; int tmp = n; while(tmp != 0){count++; tmp = tmp/10; }tmp = n; int sum = 0; while(tmp != 0){sum += Math.pow(tmp%10,count); tmp = tmp/10; }if(sum == n){System.out.println(sum); }}}}
2.运行结果(Java)

文章图片
3.代码(C语言)
由于上文提到的方法只适用于三位数,显然不能输出0-100000中的所有自幂数,所以我们用适用更广的方法。
#include #includeint main(){ int n = 0; for (n = 0; n <= 100000; n++) {int count = 1; int tmp = n; int sum = 0; while (tmp/10){tmp = tmp / 10; count++; }tmp = n; while (tmp){sum = pow(tmp % 10, count) + sum; tmp = tmp / 10; }if (sum == n)printf("%d\n", sum); } return 0; }
可以看到两种语言的代码都很相似。
4.运行结果(C语言)

文章图片
【Java和C语言分别实现水仙花数及拓展代码】到此这篇关于Java和C语言分别实现水仙花数及拓展代码的文章就介绍到这了,更多相关水仙花数内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 急于表达——往往欲速则不达
- 第三节|第三节 快乐和幸福(12)
- 20170612时间和注意力开销记录
- 2.6|2.6 Photoshop操作步骤的撤消和重做 [Ps教程]
- 对称加密和非对称加密的区别
- 眼光要放高远
- 樱花雨
- 前任
- 2020-04-07vue中Axios的封装和API接口的管理