2020-12-06作业整理

  1. 1.Java的main方法一定是写在类中的
    2.类名的命名
    (1)一定是大驼峰的命名方式;[eg: TestDemo ]
    (2)类名一定要与文件名相同,前提是这个类是一个public类
  2. 有一组数据,只有一个数字是出现一次,其他是两次,请找出这个数字
public class Main {
    public static int findNum(int[] array) {
        int ret = 0;
        for (int i = 0; i < array.length; i++) {
            ret ^= array[i];
        }
        return ret;
    }
    public static void main(String[] args) {
        int[] array = {1,1,2,3,3,4,4,5,5};
        System.out.println(findNum(array));
    }
}
  1. 求斐波那契数列的第n项。(迭代实现)
    public static int fib(int n) {
        if (n == 1 || n == 2) {
            return n;
        }
        int i = 1, j = 1, sum = 0;
        for (int m = 3; m <= n; m++) {
            sum = i + j;
            i = j;
            j = sum;
        }
        return sum;
    }

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int ret = fib(n);
        System.out.println(ret);
    }

  1. 求1!+2!+3!+4!+…+n!的和
 package com.company;
import java.util.Scanner;
public class Main {public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int n = scan.nextInt();
        int add = facadd(n);
        System.out.println(add);
    }

    public static int facadd(int n) {
        int sum = 0;
        for (int i = 1; i <= n; i++) {
            int ret = 1;
            for (int j = 1; j <= i; j++) {
                ret *= j;
            }
            sum += ret;
        }
        return sum;
    }
}
  1. 求 N 的阶乘
 package com.company;
import java.util.Scanner;
public class Main {public static void main(String []args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt();
        int i = 1;
        int sum = 1;
        while(i<=n){
            sum = sum*i;
            i++;
        }
        System.out.println(sum);
    }
}
  1. 调整数组顺序使得奇数位于偶数之前。调整之后,不关心大小顺序
package com.company;
import java.util.Arrays;

public class Main {
        public static void main(String[] args) {
            int []arr={1,2,3,4,5,6,7,8,9,10};
            int i;
            int j;
            for(i=0;i<10;i++){
                for(j=i+1;j<10;j++){
                    if(arr[j]%2!=0){
                        int tmp=arr[j];
                        arr[j]=arr[i];
                        arr[i]=tmp;
                    }
                }
                System.out.print(arr[i]+" ");
            }
        }
}
  1. 创建方法求两个数的最大值max2,随后再写一个求3个数的最大值的函数max3。
    ​ 要求:在max3这个函数中,调用max2函数,来实现3个数的最大值计算
package com.company;
import java.util.Scanner;
public class Main{public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        double a=sc.nextDouble();
        double b=sc.nextDouble();
        double c=sc.nextDouble();
        double max=Max3(a, b,c);
        System.out.println(max);
    }
    public static double Max2(double a,double b) {
        double max2;
        if(a>b){
            max2=a;
        }
        else{
            max2=b;
        }
        return max2;
    }
    public static double Max3(double a,double b,double c){
        double max3;
        double max2=Max2(a,b);
        if(max2>c){
            max3=max2;
        }else{
            max3=c;
        }
        return max3;
    }
}
  1. 在同一个类中定义多个方法:要求不仅可以求两个整数的最大值,还可以求两个小数的最大值,以及两个小数和一个整数的大小关系
 public static void main(String[] args) {
    Scanner scan = new Scanner(System.in);
    int a = scan.nextInt();
    int b = scan.nextInt();
    System.out.println("两个整数中最大的是:"+max(a,b));
    double i = scan.nextDouble();
    double j = scan.nextDouble();
    System.out.println("两个小数中最大的是:"+max(i,j));
    double x = scan.nextDouble();
    double y = scan.nextDouble();
    int k = scan.nextInt();
    System.out.println("两个小数和一个整数中最大的是:"+max(i,j,k));
}
public static int max(int a,int b) {
    return a>b?a:b;
}
public static double max(double i,double j) {
    return i>j?i:j;
}
public static double max (double i,double j,int k) {
    return max(max(i,j),k);
}
  1. 在同一个类中,分别定义求两个整数的方法 和 三个小数之和的方法。 并执行代码,求出结果
package com.company;
import java.util.Scanner;
public class Main {public static void main(String[] args) {
            Scanner scan = new Scanner(System.in);
            int a = scan.nextInt();
            int b = scan.nextInt();
            System.out.println("两个整数的和是"+add(a,b));
            double i = scan.nextDouble();
            double j = scan.nextDouble();
            double k = scan.nextDouble();
            System.out.println("三个小数的和是"+add(i,j,k));
        }
        public static int add(int a,int b) {
            return a+b;
        }
        public static double add(double i,double j,double k) {
            return i+j+k;
        }
}
  1. 递归求斐波那契数列的第 N 项
public static int fib(int n) {
    if (n == 1 || n==2) {
        return 1;
    }
    return fib(n-1)+fib(n-2);
}
public static void main(String[] args) {
    System.out.println(fib(6));
}
  1. 写一个递归方法,输入一个非负整数,返回组成它的数字之和
public static int faction(int n) {
    if (n > 9){
        int tmp = faction(n/10)+n%10;
        return tmp;
    }else{
        return n;
    }
}
public static void main(String[] args) {
    System.out.println(faction(1234567));
}
  1. 按顺序打印一个数字的每一位(例如 1234 打印出 1 2 3 4) (递归)
public static void printf(int n) {
    if(n > 9){
        printf(n/10);
    }
    System.out.println(n%10);
}
public static void main(String[] args) {
  printf(1234);
}
  1. 递归求 1 + 2 + 3 + … + 10
public static int sumOr(int n) {
    if(n==1){
        return 1;
    }
    int tmp = n+sumOr(n-1);
    return tmp;
}
public static void main(String[] args) {
    System.out.println(sumOr(10));
}
  1. 递归求 N 的阶乘
public class Main{public static int fac(int n){
        int ret = 1;
        for (int i = 1; i <= n; i++) {
            ret*= i;
        }
        return ret;
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int ret = fac(n);
        System.out.println(ret);
    }
}

生病的小孙就连干饭都没有力气真是太可恨了
在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值