资讯专栏INFORMATION COLUMN

【C语言、Java】分别实现水仙花数及拓展

sumory / 1912人阅读

摘要:水仙花数是指一个三位数,其各位数字的立方和确好等于该数本身,如,则是一个水仙花数。一水仙花数因为水仙花数是三位数,所以我们把范围定为。代码运行结果代码语言其中的一种方法,只输出水仙花数,下文会进行拓展。

目录

前言

一、水仙花数

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 #include int 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语言)

 


 

总结

睡觉睡觉

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/123953.html

相关文章

  • C语言入门》简单仙花问题求解

    摘要:目录问题问题求解及代码实现问题描述求出之间的所有水仙花数并输出。水仙花数是指一个位数,其各位数字的次方之和确好等于该数本身,如,则是一个水仙花数。 目录 1.问题 2.问题求解及代码实现 1.问题描述 求出0~100000之间的所有水仙花数并输出。水仙花数是指一个n位数,其各位数字的n次方之...

    不知名网友 评论0 收藏0
  • 1、循环练习 2、数组方法练习

    摘要:解题步骤使用输出语句完成打印左边的中括号使用循环,输出数组元素值。按照这种方式,数组循环多圈以后,就完成了数组元素的排序。 01奇数求和练习 * A: 奇数求和练习 * a: 题目分析 * 为了记录累加和的值,我们需要定义一个存储累加和的变量 * 我们要获取到1-100范围内的数 * 判断当前数是否为奇数,是奇数,完成累加和操作 ...

    894974231 评论0 收藏0
  • 金三银四,2019大厂Android高级工程师面试题整理

    摘要:原文地址游客前言金三银四,很多同学心里大概都准备着年后找工作或者跳槽。最近有很多同学都在交流群里求大厂面试题。 最近整理了一波面试题,包括安卓JAVA方面的,目前大厂还是以安卓源码,算法,以及数据结构为主,有一些中小型公司也会问到混合开发的知识,至于我为什么倾向于混合开发,我的一句话就是走上编程之路,将来你要学不仅仅是这些,丰富自己方能与世接轨,做好全栈的装备。 原文地址:游客kutd...

    tracymac7 评论0 收藏0
  • 大师带你开悟高薪程序员之路——《编程之道》番外篇

    摘要:编程之道出自美国一位资深的程序设计师之手。大师带你开悟高薪程序员之路编程之道番外篇程序员见禅师我学了和水仙花数,想自己开发个操作系统,希望大师指点。斧子扔得再啊呀我操程序员去拜访禅师每次遇到程序,我都心急如焚,特向大师求心灵平静之道。 编程之道》出自美国一位资深的程序设计师 Geoffrey James 之手。 本文章是为番外篇,哈哈哈,有点儿无节操。 大师带你开悟高薪程序员之路——《...

    cocopeak 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<