零基础学习Java语言——7、函数

简介: 零基础学习Java语言——7、函数

Java的函数必须定义在类的内部,成为类的成员。定义一个函数,要像这样写:


<返回类型> <方法名称>(<参数表>) {

<方法体>

}


返回类型是这个函数运行结束时要返回给调用者的数据的类型,函数可以返回基本数据类型、对象或者void。返回void表示这个函数不返回任何值。函数名称是一个Java名字,一样要遵循和变量一样的命名规则。参数表是0个或1个或多个参数定义,用逗号’,’分隔。


在这个阶段,我们要在所有的函数的返回类型前面加上关键字“static”。static表示这个函数属于这个类,而不属于这个类的任何对象,因此我们才可以不制造这个类的对象,而直接从main()函数中调用它。


当一个函数被调用时,程序就转到这个函数中去运行,函数体里的语句就一条一条地被调用。一旦函数运行结束,就又回到调用它的地方去继续运行。


分解质因数

题目内容:


每个非素数(合数)都可以写成几个素数(也可称为质数)相乘的形式,这几个素数就都叫做这个合数的质因数。比如,6可以被分解为2x3,而24可以被分解为2x2x2x3。


现在,你的程序要读入一个[2,100000]范围内的整数,然后输出它的质因数分解式;当读到的就是素数时,输出它本身。


输入格式:


一个整数,范围在[2,100000]内。


输出格式:


形如:


n=axbxcxd



n=n


所有的符号之间都没有空格,x是小写字母x。


输入样例:


18


输出样例:


18=2x3x3


解题:

/**
 * @author yh
 * @version 1.0
 * @date 22-4-4 下午9:34
 */
import java.util.Scanner;
public class Main{
    public  static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int value = in.nextInt();
        if (value < 2 || value > 100000){
            return;
        }
        //判断是否素数
        if(isPrime(value))
        {
            System.out.println(value+"="+value);
        }
        else
        {
            int[] factor = calFactor(value);
            String result = "";
            for (int i = 0;i < factor.length;i++)
            {
                if (factor[i] == 0)
                {
                    result = result.substring(0,result.length()-1);
                    break;
                }
                //System.out.println(factor[i]);
                result += factor[i]+"x";
            }
            System.out.println(value+"="+result);
        }
    }
    public  static  boolean isPrime(int input){
        boolean isPrime = true;
        for (int i = 2;i < input;i++){
            if (input % i == 0){
                isPrime = false;
                break;
            }
        }
        return  isPrime;
    }
    public  static  int[] calFactor(int input){
        int[] arr = new int[20];
        int index = 0;
        for (int i = 2;i <= input;){
            if (input % i == 0){
                arr[index] = i;
                index++;
                input /= i;
                //System.out.println(i+","+input);
                continue;
            }
            i++;
        }
        return  arr;
    }
}


完数


题目内容:


一个正整数的因子是所有可以整除它的正整数。而一个数如果恰好等于除它本身外的因子之和,这个数就称为完数。例如6=1+2+3(6的因子是1,2,3)。


现在,你要写一个程序,读入两个正整数n和m(1<=n<m<1000),输出[n,m]范围内所有的完数。


提示:可以写一个函数来判断某个数是否是完数。


输入格式:


两个正整数,以空格分隔。


输出格式:


其间所有的完数,以空格分隔,最后一个数字后面没有空格。如果没有,则输出一个空行。


输入样例:


1 10


输出样例:


6


解题:

/**
 * @author yh
 * @version 1.0
 * @date 22-4-4 下午10:24
 */
import java.util.Scanner;
public class Main{
    public static void main(String[] args)
    {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        String result = "";
        if(n>=m || n<1 && m>=1000) {
            return;
        }
        for (int i = n; i <= m; i++){
            if (!isPrime(i)){
                int sum = 0;
                int[] arr = calFactor(i);
                for (int j = 0;j < arr.length;j++)
                {
                    if (arr[j] == 0)
                    {
                        break;
                    }
                    sum += arr[j];
                }
                //System.out.println("print:"+i+","+sum);
                if ((sum/2+1) == i)
                {
                    result +=  i + " ";
                }
            }
        }
        if (result.equals(""))
        {
            result = " ";
        }
        else
        {
            result = result.substring(0,result.length()-1);
        }
        System.out.println(result);
    }
    public  static  boolean isPrime(int input){
        boolean isPrime = true;
        for (int i = 2;i < input;i++){
            if (input % i == 0){
                isPrime = false;
                break;
            }
        }
        return  isPrime;
    }
    public  static  int[] calFactor(int input){
        int[] arr = new int[1000];
        int index = 0 , cnt = 0;
        int temp = input;
        for (int i = 2;i < input;i++){
            if (input % i == 0){
                cnt++;
                arr[index++] = i;
                arr[index++] = input / i;
                if (cnt==1)
                {
                    temp = input / i;//优化
                }
            }
        }
        return  arr;
    }
}

mooc上的课程习题,边学习边记录!

目录
打赏
0
2
4
0
3
分享
相关文章
Java语言位运算符详解
Java语言提供了7种位运算符:按位与(&)、按位或(|)、按位异或(^)、取反(~)、左移(&lt;&lt;)、带符号右移(&gt;&gt;)和无符号右移(&gt;&gt;&gt;)。这些运算符主要用于对long、int、short、byte和char类型的数据进行二进制位级别的操作,不能用于double、float和boolean类型。文中详细讲解了每种运算符的规则和应用场景,并指出位运算在实际开发中有重要应用价值,不仅限于面试。
102 2
|
2月前
|
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
208 3
java语言后台管理ruoyi后台管理框架-登录提示“无效的会话,或者会话已过期,请重新登录。”-扩展知识数据库中密码加密的方法-问题如何解决-以及如何重置若依后台管理框架admin密码-优雅草卓伊凡
如何使用Java语言快速开发一套智慧工地系统
使用Java开发智慧工地系统,采用Spring Cloud微服务架构和前后端分离设计,结合MySQL、MongoDB数据库及RESTful API,集成人脸识别、视频监控、设备与环境监测等功能模块,运用Spark/Flink处理大数据,ECharts/AntV G2实现数据可视化,确保系统安全与性能,采用敏捷开发模式,提供详尽文档与用户培训,支持云部署与容器化管理,快速构建高效、灵活的智慧工地解决方案。
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
java语言后台管理若依框架-登录提示404-接口异常-系统接口404异常如何处理-登录验证码不显示prod-api/captchaImage 404 (Not Found) 如何处理-解决方案优雅草卓伊凡
269 5
课时2:Java语言特点
课时2介绍了Java语言的多个关键特性。作为开源且半开源的产品,Java成为通用技术标准,拥有透明的开发环境。其面向对象的设计、自动内存回收、简化指针处理(使用引用)、支持多线程编程、高效的网络处理能力(如NIO)及良好的可移植性,共同促成了Java的强大生态系统和广泛应用。
Java线程池ExecutorService学习和使用
通过学习和使用Java中的 `ExecutorService`,可以显著提升并发编程的效率和代码的可维护性。合理配置线程池参数,结合实际应用场景,可以实现高效、可靠的并发处理。希望本文提供的示例和思路能够帮助开发者深入理解并应用 `ExecutorService`,实现更高效的并发程序。
50 10
【潜意识Java】深度分析黑马项目《苍穹外卖》在Java学习中的重要性
《苍穹外卖》项目对Java学习至关重要。它涵盖了用户管理、商品查询、订单处理等模块,涉及Spring Boot、MyBatis、Redis等技术栈。
275 4
【潜意识Java】Java基础教程:从零开始的学习之旅
本文介绍了 Java 编程语言的基础知识,涵盖从简介、程序结构到面向对象编程的核心概念。首先,Java 是一种高级、跨平台的面向对象语言,支持“一次编写,到处运行”。接着,文章详细讲解了 Java 程序的基本结构,包括包声明、导入语句、类声明和 main 方法。随后,深入探讨了基础语法,如数据类型、变量、控制结构、方法和数组。此外,还介绍了面向对象编程的关键概念,例如类与对象、继承和多态。最后,针对常见的编程错误提供了调试技巧,并总结了学习 Java 的重要性和方法。适合初学者逐步掌握 Java 编程。
63 1
目录
目录
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等