返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >Java和C语言分别实现水仙花数及拓展代码
  • 651
分享到

Java和C语言分别实现水仙花数及拓展代码

2024-04-02 19:04:59 651人浏览 安东尼
摘要

目录前言 一、水仙花数 1.代码(Java) 2.运行结果(Java)3.代码(C语言) 4.运行结果(C语言)二、拓展 1.代码(Java) 2.运行结果(Java)3.代码(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 <stdio.h>
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 <stdio.h>
#include <math.h>
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语言)

到此这篇关于Java和C语言分别实现水仙花数及拓展代码的文章就介绍到这了,更多相关水仙花数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java和C语言分别实现水仙花数及拓展代码

本文链接: https://lsjlt.com/news/157770.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java和C语言分别实现水仙花数及拓展代码
    目录前言 一、水仙花数 1.代码(Java) 2.运行结果(Java)3.代码(C语言) 4.运行结果(C语言)二、拓展 1.代码(Java) 2.运行结果(Java)3.代码(C...
    99+
    2024-04-02
  • C语言水仙花数与变种水仙花数代码怎么写
    这篇“C语言水仙花数与变种水仙花数代码怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“C语言水仙花数与变种水仙花数代码怎...
    99+
    2023-06-30
  • C语言深入探究水仙花数与变种水仙花数代码
    目录1.水仙花1.1先看代码1.2大体逻辑2.变种水仙花数2.1先看代码2.2代码剖析1.水仙花 题目: 1.1先看代码 #include <stdio.h> int ...
    99+
    2024-04-02
  • 利用Python和C语言分别实现哈夫曼编码
    目录1.C语言实现1.1代码说明1.2运行结果2.Python实现2.1代码说明2.2运行结果1.C语言实现 1.1代码说明 a  创建双向链表: 在创建哈夫曼树的过程中,...
    99+
    2024-04-02
  • 如何利用Python和C语言分别实现哈夫曼编码
    1.C语言实现1.1代码说明a 创建双向链表:在创建哈夫曼树的过程中,需要不断对结点进行更改和删除,所以选用双向链表的结构更容易'''C #include <stdlib.h> #include <...
    99+
    2023-05-22
    Python C语言
  • 怎么用C语言代码实现复数的加减及输出结构体
    这篇“怎么用C语言代码实现复数的加减及输出结构体”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么用C语言代码实现复数的加减...
    99+
    2023-06-29
  • 分别用python和go语言来实现的风靡一时的2048 游戏,包含完整代码
    目录 1、Python实现2、Go实现 2048 游戏实现主要包括以下几个步骤: 创建一个棋盘,通常使用二维列表表示。实现棋子的移动规则,左移、右移、上移、下移。判断游戏是否结束,即棋盘...
    99+
    2023-08-30
    python golang 游戏
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作