`
wangpan80
  • 浏览: 108749 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java的算法题

    博客分类:
  • Java
阅读更多

 /** *//**父子俩的年龄:父亲今年30岁,儿子今年6岁,问多少年后父亲的年龄是儿子年龄的2倍。*/
package exec;

public class Age {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int father = 30;
        int son = 6;
        for(int i=1;i<100;i++)
        {
            if((father+i)==((son+i)*2)){
                System.out.println(i + " 年");
            }
        }
    }
}

 

/** *//**编写程序,将两个各有6个整数的数组,合并成一个由小到大排列的数组,(该数组的长度为12)*/
package exec;

import java.util.Arrays;

public class Arrary {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int a[] = { 1, 3, 5, 8, 9, 4 };
        int b[] = { 2, 4, 7, 6, 5, 9 };
        int c[] = new int[12];
        for (int i = 0; i < 6; i++) {
            c[i] = a[i];
            c[i + 6] = b[i];
        }
        Arrays.sort(c);
        for (int i = 0; i < 12; i++) {
            System.out.print(c[i] + " ");
        }
    }

}

 

/** *//** 一个球从100米高度自由落下后,反弹回原来高度的一半。按此规律,到第10次落地时,行程共有多少米?
 * 然后将反弹起多高? */
package exec;

public class BallFall {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        float heigher = 100;
        float sum = 0;
        for (int i = 1; i < 10; i++) {
            heigher /= 2;
            sum += heigher;
            System.out.println("第" + i + "次" + "总行程" + sum + "米" + "反弹"
                    + heigher + "米");
        }

    }

}

 

/** *//** 换硬币:把一元人民币换成5分、2分、1分的硬币,有多少种换法? */
package exec;

public class ChangeCoin {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int num = 0;

        for (int i = 1; i <= 20; i++) {
            for (int j = 1; j <= 50; j++) {
                for (int k = 1; k <= 100; k++) {
                    if (5 * i + 2 * j + 1 * k == 100) {
                        num += 1;
                    }
                }
            }
        }
        System.out.print(num + "种换法");
    }
}

 

/** *//**牛的繁殖问题 :有位科学家曾出了这样一道数学题:有一头母牛,它每年年初要生一头小母牛;
 * 每头小母牛从第四个年头起,每年年初也要生一头小母牛。按此规律,若无牛死亡,第20年头上共有多少头母牛?*/
package exec;

public class CountCow {
    int[] cowNumber = new int[21];

    public void count(int increaseCycle, int years) {
        cowNumber[0] = 1;
        for (int currentYear = 1; currentYear <= years; currentYear++) {
            if (currentYear < increaseCycle) {
                cowNumber[currentYear] = cowNumber[currentYear - 1] + 1;
            } else {
                cowNumber[currentYear] = cowNumber[currentYear - 1]
                        + cowNumber[currentYear - increaseCycle + 1];

            }
            System.out
                    .println("第" + currentYear + "年" + cowNumber[currentYear]);
        }
    }

    public static void main(String[] args) {
        int increaseCycle = 4;
        int years = 20;

        CountCow cow = new CountCow();
        cow.count(increaseCycle, years);
    }
}

 

/** *//** 打印出500之内所有能被7或9整除的数*/
package exec;

public class Divide {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        for (int i = 0; i <= 500; i++) {
            if ((i % 7 == 0) | (i % 9 == 0)) {
                System.out.print(i + " ");
            }
        }
    }

}

 

/** *//**
 * 编写一个Java程序 使它随即产生1800到2000之间的年份,打印它是否是一个闰年,闰年是1584年以后的年份,它要能被400整除,
 
 * 要能被4整除但是不能被100整除,已知使用Math.random()方法可以产生0到1之间的随即小数. )

 */
package exec;

public class EmergerYear {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        for (int i = 0; i < 100; i++) {
            long year = (Math.round(Math.random() * 200) + 1800);
            if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
                System.out.println(year + "是闰年!");
            } else
                System.out.println(year + "不是闰年!");
        }
    }

}

 

/** *//**编写程序以递归的方式实现1+2+3++n(n=200)的计算.*/
package exec;

public class Number {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        System.out.print(numbers(200));
    }
    public static int numbers(int n){
        return n<=1?1:n+numbers(n-1);
    }
}

 

/** *//** 给定一个数,并由键盘输入若干个数,找出与预先给定的数最接近的数,
 * 并指出它是由键盘输入的第几个数。
 */
package exec;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class NumberCompare {
    public static final int NUMBER = 80; // 给定一个要比较的数

    public static void main(String args[]) {
        System.out.print("Please input numbers: ");
        BufferedReader io = new BufferedReader(new InputStreamReader(System.in));
        try {
            // 从键盘输入若干数
            String line = io.readLine();
            // 放入数组中
            String[] items = line.split(" ");
            int temp = 5000, x = 0, place = 0;
            System.out.println("target number: 80");
            // 和给定的数比较大小
            for (int i = 0; i < items.length; i++) {
                if (Integer.parseInt(items[i]) > NUMBER) {
                    x = Integer.parseInt(items[i]) - NUMBER;
                } else {
                    x = NUMBER - Integer.parseInt(items[i]);
                }
                if (x < temp) {
                    temp = x;
                    place = Integer.parseInt(items[i]);
                }
            }
            System.out.println("place: " + place);
            io.close();
            System.exit(0);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
 

/** *//**使用Java,long.Math类,生成10个0到99之间的随即整数,求出它们中的最小值和最大值*/
package exec;

import java.util.Iterator;
import java.util.TreeSet;

public class RandomNumber {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        /** *//**方法1
        long max = 50;
        long min = 50;
        for(int i=0; i<10; i++){
            long number = Math.round(Math.random()*99 + 1);
            System.out.print(number + " ");
            max = Math.max(max, number);
            min = Math.min(min, number);
            if(i == 9){
                System.out.print(" Math MaxNumber=" + max + " MinNumber=" + min);
            }
        }
        */
        //方法2
        TreeSet ts = new TreeSet();
        for(int i=0; i<10; i++){
            long number = Math.round(Math.random()*99 + 1);
            System.out.print(number + " ");
            ts.add(number);
        }
        System.out.println();
        Iterator it = ts.iterator();
        while(it.hasNext()){
            System.out.print(it.next() + " ");
           
        }
        System.out.print(" Math MaxNumber=" + ts.last() + " MinNumber=" + ts.first());
    }
       
}

 

/** *//**假设有一条钢材长2000米,每天截取其中的一半,编写一程序求出多少天后,钢材的长度小于5米.*/
package exec;

public class SteelSection {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int i = 0;
        float steel = 2000f;
        while (steel >= 5) {
            i++;
            steel = steel / 2;
            System.out.println(i + "天后钢管长" + steel + "米");
        }
    }

}

 

/** *//**完全数是指其所有因子(包括1但不包括该数自身)的和等于该数,例如28=1+2++4+7+14,28就是一个完全数.
 * 编写一个程序求出2到10000之间的所有完全数.*/
package exec;

public class WanNumber {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int m = 0;
        for (int n = 2; n <= 10000; n++) {
            m = 0;
            for (int i = 1; i < n; i++) {
                if (n % i == 0) {
                    m += i;
                    if (m == n) {
                        System.out.println(n + "个完全数");
                    }
                }
            }
        }
    }

}

 

/**//*编写一个Java类Prime,其中只有一个静态方法. boolean.isPrin=me(int n)//方法测试n是否是素数,
 * 如果是返回true 否则返回false  已知Babbage函数发f(x)=x*x+x+41,其中x为自然数,
 * 当x小于特定的n之间所有的函数均为素数,编写一个测试类,其中的main方法找出这个特定n值.
 */

package exec;

public class Test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        int num = 200000; // 表示1-num之间的自然数
        for (int i = 1; i <= num; i++) {
            if (Prime.me(i)) {
                System.out.println(i + "是素数");
            } else {
                System.out.println(i + "不是素数");
            }
        }

    }

}
package exec;

public class Prime {
    public static boolean me(int n) {
        for (int x = 1; x < n; x++) {
            if (n == x * x + x + 41) {
                return true;
            }
        }
        return false;
    }

}

分享到:
评论

相关推荐

    Java算法集题大全.zip

    Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法集题大全Java算法...

    java的算法题(一)

    共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题

    java算法题(五)

    java算法题java算法题java算法题java算法题java算法题java算法题java算法题java算法题java算法题java算法题

    java算法题(各种语言通用)

    本资源“java算法题(各种语言通用)”显然旨在帮助程序员,特别是Java开发者,提高他们的算法理解和实现能力。虽然题目是用Java编写的,但它们的概念和逻辑通常可以应用于其他编程语言,体现了算法的通用性。 首先,...

    java算法题(四)

    java算法题 java算法题 java算法题 java算法题java算法题

    java算法题(七)

    java算法题java算法题java算法题java算法题

    java算法题(六)

    java算法题java算法题java算法题java算法题

    java算法题(三)

    很不错的java算法题 很不错的java算法题 很不错的java算法题 很不错的java算法题 很不错的java算法题

    java算法题(30个)

    Java算法题涵盖了许多基础到进阶的编程概念,主要集中在数据结构、算法设计以及逻辑推理上。以下是对这些题目涉及的知识点的详细说明: 1. **兔子问题**(斐波那契数列): - 知识点:斐波那契数列,递归算法。 -...

    java算法题(二)

    共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题 共有7个 很不错的java算法题

    最新java算法题50

    "最新java算法题50"是一个专门为Java程序员设计的资源,它包含了50个精心挑选的算法题目,旨在挑战和提升你的编程思维能力。这些题目覆盖了基础到高级的算法,对于准备面试、提升技能或者进行日常学习都是非常有帮助...

    java经典算法90题含源码及答案.rar

    通过解决这些算法题,开发者可以锻炼逻辑思维,理解和掌握数据结构,如数组、链表、栈、队列、树、图等,以及排序、搜索、图论、动态规划等核心算法。 在JAVA经典算法40题.doc中,可能包含的题目类型有递归、分治、...

    刷过的Java算法题源码仓库

    【标题】"刷过的Java算法题源码仓库"所涉及的知识点主要集中在Java编程语言以及算法的应用上。这个标题暗示了这是一个包含多个Java实现的算法题目解决方案的集合,可能来自于像LeetCode、HackerRank这样的在线编程...

    java经典算法题

    首先,让我们来看看Java算法中的基础部分——排序算法。Java中常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序和堆排序等。冒泡排序和插入排序适用于小规模数据,而快速排序和归并排序则在大数据...

    Java算法题总结,供自己学习使用

    总的来说,这份"Java算法题总结"资源应该包含了各种类型的题目,旨在通过实战练习提高读者的算法思维和编程技巧。通过不断练习和理解这些算法,不仅可以提升编程技能,还能在面试和实际工作中游刃有余。对于每个算法...

    JAVA算法题

    "JAVA算法题" 本资源提供了一个丰富的Java算法题库,包含基础题、深入题和综合题共一百多道。这些题目涵盖了Java基础知识、算法和数据结构、面向对象编程等多个方面,对于初学者来说非常有帮助。 下面是该资源中的...

    java算法题 : 数组相关问题

    在Java编程语言中,数组是一种基础且重要的数据结构...通过学习和实践上述知识点,对于Java算法题中的数组问题,你将能够游刃有余地进行解答。不断练习和深入理解数组的特性,可以提升你在算法设计和问题解决上的能力。

    JAVA算法编程题目及答案.doc

    JAVA算法编程题目及答案 本资源提供了50道JAVA算法编程题目及答案,涵盖了算法设计、数据结构、程序设计等多个方面的知识点。以下是对标题、描述、标签和部分内容的详细解释: 标题:JAVA算法编程题目及答案 本...

    java笔试算法题40道

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

    全国软件专业人才设计与开发大赛java算法试题

    全国软件专业人才设计与开发大赛是一项旨在提升大学生在软件设计与开发能力上的竞赛,其中Java算法试题是比赛的重要组成部分。这个压缩包包含了参赛者在历届比赛中遇到的经典算法题目及对应的解题代码,对于学习和...

Global site tag (gtag.js) - Google Analytics