`

Java五道题

    博客分类:
  • java
阅读更多

今天在微信公众号看到一篇“每个程序员半小时内必须解决的5个编程问题”,发现自己也不完全会,在网上搜罗做了整理,以便不时之需。

问题1

使用for循环、while循环和递归写出3个函数来计算给定数列的总和。

问题2

编写一个交错合并列表元素的函数。例如:给定的两个列表为[a,B,C]和[1,2,3],函数返回[a,1,B,2,C,3]。

问题3

编写一个计算前100位斐波那契数的函数。根据定义,斐波那契序列的前两位数字是0和1,随后的每个数字是前两个数字的和。例如,前10位斐波那契数为:0,1,1,2,3,5,8,13,21,34。

问题4

编写一个能将给定非负整数列表中的数字排列成最大数字的函数。例如,给定[50,2,1,9],最大数字为95021。

问题5

编写一个在1,2,…,9(顺序不能变)数字之间插入+或-或什么都不插入,使得计算结果总是100的程序,并输出所有的可能性。例如:1 + 2 + 34 – 5 + 67 – 8 + 9 = 100。

 

问题1:

 

public class SumTest {

    public static void whileMethod(int[] array) {
        if (null == array || array.length == 0) {
            return;
        }
        int sum = 0;
        int i = 0;
        while (i < array.length) {
            sum += array[i];
            i++;
        }
        System.out.println("Sum result is while : " + sum);
    }

    public static void forMethod(int[] array) {
        if (null == array || array.length == 0) {
            return;
        }
        int sum = 0;
        int i = 0;
        for (int num: array) {
            sum += num;
        }
        System.out.println("Sum result is for : " + sum);
    }

    public static int recursiveMethod(int[] array, int i) {
        if (null == array || array.length == 0) {
            return 0;
        }
        if (i < array.length) {
            return array[i] + recursiveMethod(array, i + 1);
        }
        return 0;
    }
    public static void main(String[] args){

        int[] array = {1, 2, 3, 4, 5, 6, 7};
        whileMethod(array);
        forMethod(array);
        System.out.println(recursiveMethod(array, 0));
    }
}

问题2:

 

public class ListMerge {
    public static String[] mergeList(String[] arg1, String[] arg2) {
        String[] arr = new String[arg1.length + arg2.length];
        int i, j;
        for (i = 0, j = 0; i < arg1.length; i++) {
            j = 2 * i;
            if (j > 2 * arg2.length){
                j = arg2.length + i;
            }
            arr[j] = arg1[i];
         }
        for (i = 0, j = 0; i < arg2.length; i++) {
            j = 2 * i + 1;
            if (j > 2 * arg1.length) {
                j = arg1.length + 1;
            }
            arr[j] = arg2[i];
        }
        return arr;
    }
    public static void main(String[] args){
        String[] arr1 = { "a", "B", "c", "D", "e" };
        String[] arr2 = { "1", "2", "3" };
        String[] arr = mergeList(arr1, arr2);
        System.out.println(Arrays.toString(arr));
    }
}

问题3:

 

public class Fibonacci {
    private static int getNum(int num) {
        int count = 0;
        if (num <= 1) {
            count = 0;
        } else if (num == 2) {
            count = 1;
        } else {
            count = getNum(num - 1) + getNum(num - 2);
        }
        return count;
    }

    private static String getSum(int num) {
        String numStr = "";
        for (int i = 0; i <= num; i++) {
            numStr = getNum(i) + ",";
        }
        numStr = numStr.substring(0, numStr.length() - 1);
        return numStr;
    }

    public static void main(String[] args){

        System.out.println("The number is : " + getSum(100));
    }
}

问题4:

 

public class MaxValue {
    private static Integer[] VALUES = { 50, 2, 100, 99, 5, 7, 51,50 ,11};
    public static void main(String[] args){
        Arrays.sort(VALUES, new Comparator<Integer>() {
            public int compare(Integer o1, Integer o2) {
                String v1 = o1.toString();
                String v2 = o2.toString();
                return (v1 + v2).compareTo(v2 + v1) * - 1;
            }
        });
        String result = "";
        for (Integer integer: VALUES) {
            result += integer.toString();
        }
        System.out.println(result);
    }
}

问题5:

 

public class SameSum {
    
    private static int TARGET_SUM = 100;
    private static int[] VALUES = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    private static ArrayList add(int digit, String sign, ArrayList branches) {
        for (int i = 0; i < branches.size(); i++) {
            branches.set(i, digit + sign + branches.get(i));
        }
        return branches;
    }

    private static ArrayList f(int sum, int number, int index) {
        int digit = Math.abs(number % 10);
        if (index >= VALUES.length) {
            if (sum == number) {
                ArrayList result = new ArrayList();
                result.add(Integer.toString(digit));
                return result;
            } else {
                return new ArrayList();
            }
        }
        ArrayList branch1 = f(sum - number, VALUES[index], index + 1);
        ArrayList branch2 = f(sum - number, -VALUES[index], index + 1);
        int concatenatedNumber = number >= 0 ? 10 * number + VALUES[index] : 10
             * number - VALUES[index];
        ArrayList branch3 = f(sum, concatenatedNumber, index + 1);
        ArrayList results = new ArrayList();
        results.addAll(add(digit, "+", branch1));
        results.addAll(add(digit, "-", branch2));
        results.addAll(add(digit, "", branch3));
        return results;
    }

    public static void main(String[] args) {
        ArrayList list = f(TARGET_SUM, VALUES[0], 1);
        for(int i=0;i<list.size();i++) {
            System.out.println(list.get(i));
        }
    }
}
0
0
分享到:
评论

相关推荐

    java100道选择题含答案.pdf

    Java 语言选择题解析 1. Java 语言标识符规则规定,标识符不能以数字开头,所以选项 D) 11 不可作为 Java 语言标识符。 2. Java 源文件的命名规则是主类名(首字母大写).java,所以对于主类名为 a1 的程序,源文件...

    java程序员笔试题java程序员笔试题

    本资源提供了 Java 程序员笔试题,共 10 道单项选择题和 2 道多项选择题,涵盖了 Java 基础知识、编程技术、数据类型、运算符、控制流程、方法和类等方面的知识点。 1. Java 程序编译后会产生 byte code,而不是 ...

    java程序设计填空题题库49道

    2. **数学运算**:`Math.round()`方法用于四舍五入,例如`Math.round(11.5)`返回12,`Math.round(-11.5)`返回-11。 3. **输入/输出**:`System.in`代表标准输入(通常来自键盘),`System.out`用于标准输出(通常是...

    java100道选择题含答案

    Java 选择题含答案 本资源总结了 Java 选择题含答案,涵盖了 Java 语言基础知识、数据类型、运算符、控制结构、方法、数组、字符串、面向对象编程、多线程、IO 操作等方面。 Java 语言基础知识 1. Java 语言...

    java习题-多选题

    在"java习题-多选题"这个主题中,我们可以深入探讨Java的基础概念、语法特性、多线程、异常处理、集合框架、IO流、网络编程等多个核心知识点。 1. **基础概念与语法**: - 类与对象:Java的核心是面向对象编程,...

    Java上机50题 含答案

    以下是50道Java编程题的答案,涵盖了Java的基本语法、数据结构、算法、面向对象编程等方面。 程序1:兔子繁殖问题 在这个问题中,我们需要使用递归函数来计算每个月的兔子对数。递归函数的定义是:如果n等于1或2,...

    java笔试算法题40道

    根据提供的文件信息,我们可以归纳总结出以下几个主要的IT知识点: ### 1. 兔子繁殖问题(斐波那契数列) ...这些知识点涵盖了常见的数据结构、算法应用以及Java编程技巧,对于初学者来说是非常好的学习资源。

    JAVA考试填空题

    第二道题涉及从文件中读取数据。在JAVA中,我们可以使用`Scanner`类来读取文件。创建`Scanner`实例并从文件`scores.txt`中读取数据的基本步骤如下: ```java File file = new File("scores.txt"); Scanner input...

    java试题1000道

    这份“java试题1000道”集合涵盖了丰富的Java学习资源,包括面试题、学习笔记、习题库以及详细的答案,适合Java初学者及进阶者进行自我检测和提升。 在这些文档中,你可以找到以下关键知识点: 1. **Java基础**:...

    java面试题,J2EE面试题 笔试题

    5、java_华为笔试题 6、java常见面试题 7、java程序员面试宝典 8、java面试题及答案 9、java面试题编程篇 10、Oracle面试题 11、Oracle企业面试题集锦 12、Spring面试题 13、SSH面试题 14、Strut+Spring+Hibernate...

    JAVA经典50道题

    java非常经典的50道题,可以提高自己的思维逻辑。希望大家可以去下载下来看

    java复习题300道

    本复习题集包含300道题目,涵盖了Java的基础知识和关键概念,旨在帮助学习者巩固理解。 1. **Java平台概述** - Java有三个主要平台:J2ME(Java Micro Edition,用于嵌入式设备),J2SE(Java Standard Edition,...

    java 练习题,共计 194 道

    这份包含194道练习题的资源是为那些希望提升Java技能或者准备面试的开发者精心准备的。通过解决这些题目,你可以深入理解Java的核心概念,包括语法、数据类型、控制结构、类与对象、异常处理、集合框架以及多线程等...

    java50道编程题源码及题目

    "java50道编程题源码及题目"的压缩包提供了一个极好的学习资源,包含了50个精心挑选的经典编程题目以及相应的源代码,旨在帮助学习者巩固基础,提高解决问题的能力。 这些编程题目涵盖了初级到高级的各种难度,从...

    JAVA期末考试试题及答案.doc

    * 解释:这道题考查了JAVA中的while循环和自增运算符的使用。while循环的条件是m小于n,同时m和n都在自增和自减操作中变化。因此,k的值最终是1。 * 题目 2:设 i、j 为 int 型变量名,a 为 int 型数组名,以下选项...

    java异常处理习题

    五、多重捕捉异常 * 可以使用多个 `catch` 子句来捕捉不同的异常类型。 * 多重捕捉异常的顺序是从子类到父类。 六、finally 子句 * `finally` 子句是用于释放资源、关闭文件、关闭数据库等的。 * `finally` 子句...

    java企业面试题大全(18个文档)

    5、java web面试题.pdf。6、Java基础方面.pdf。7、java集合面试题.pdf。8、Java框架部分面试题.pdf。9、java面接.pdf。10、JAVA面试题集锦1.pdf。11、JAVA面试题集锦2.pdf。12、java算法面试题.pdf。13、程序员面试...

    java 集合练习题

    在这个“java集合练习题”中,我们主要关注如何使用Java集合框架来处理数据,特别是对于学生信息的存储、排序和输出。以下是对这个练习题的详细解析: 1. **集合框架简介**: Java集合框架是Java API的一部分,它...

    java程序员初学20道题

    ### Java程序员初学20道题知识点解析 #### 1. Java初学者习题20道 本部分内容涉及了Java编程的基础概念和技术要点,旨在帮助初学者系统地掌握Java编程的核心知识。 #### 2. 如何看待Java构造函数的执行 在Java中...

    10万字208道Java经典面试题总结(附答案).pdf

    这份10万字的PDF文档包含了208道Java经典面试题,旨在帮助开发者们系统地复习和提升自己的技能,以应对包括阿里、腾讯、字节跳动、京东等知名互联网公司的面试。以下是部分题目及其涉及的知识点: 1. **JDK和JRE的...

Global site tag (gtag.js) - Google Analytics