IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> JAVA循环求用户指定任意大小以下的自幂数(水仙花数),没有复杂语法和算法。 -> 正文阅读

[数据结构与算法]JAVA循环求用户指定任意大小以下的自幂数(水仙花数),没有复杂语法和算法。

????????今天闲来无事,打算把周三选修的JAVA作业给做了。题目也很简单,求1000以下的水仙花数

(也就是自幂数)。因为之前学过C,像这样简单的语法入门题自然是不在话下。

????????但就在打算偷个懒,草草写完交作业时,突然想给老师整个花活,让用户自己输入要求的数(结果这个花活花了一个钟头才写完,与之前的偷懒想法背道而驰)。

?

? ? ? ? 废话就不多说了,直接上代码,写完作业再去把之前HDLBits的坑给填了(笑死,根本填不完)。

?

就难点而言,可能是需要绕几个弯,先把用户数的位数求出来,再求当前数字的位数。

import java.util.Scanner;
public class homework1 
{
    public static void main(String[] args) 
    {
        int a[]=new int[10],i=0,j=0,k=0,z=1;
        long neednum;
        long num=0;
        int temp=0,temp1=0;
        long sum_of_num=0;
        System.out.println("请输入要求的水仙花数的上限制");
        Scanner input=new Scanner(System.in);
        neednum=input.nextInt();
        for(i=1;i<10;i++,temp1++)
        {
            temp=(int) (neednum/Math.floor((Math.pow(10,i))));
            if(temp<=0)
            {
                break;
            }//求出用户输入的数字的位数 Math.floor向下取整

        }
        System.out.println("输入的数字为"+i+"位数");
        for(num=100;num<neednum+1;num++)
        {
            for(j=1;j<10;j++)
            {
                temp=(int) Math.floor((num/(Math.pow(10,j))));
                if(temp<=0)
                {
                    break;
                }  
            }//求出现在数字的位数
            for(k=j,sum_of_num=0,temp1=0;k>0;k--)
            {
                a[k]=(int) Math.floor(((num-temp1)/Math.pow(10,k-1)));
                temp1+=a[k]*Math.floor(Math.pow(10,k-1));
               //  System.out.print(""+a[k]);
                sum_of_num+=((int)(Math.pow(a[k],j)));
            }//统计每一位数的大小,并计算幂级数的总和
            // System.out.print("      ");
             if(sum_of_num==num)
             {
                System.out.print(+neednum+"以下自幂数有:"+sum_of_num+"     ");
                while(z++%5==0)
                System.out.println();
            }

        }
    }
}

可悲的是学了两三年C语言了,我还是只会一些基础得不行的算法。毕竟电技专业,平常的物理课那是又多又难,学校也不开数据结构与算法的课。只能用暴力循环来求解了,希望有大佬斧正,写出更快的代码(👴的电脑跑8位数字就用了一分钟)。

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-10-01 17:08:43  更:2021-10-01 17:09:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 10:04:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码