java基础算法题,TestAge.java、TestNumber.java和SuShu.java,实例代码分享

BSO 2020-10-19 16:31:21 java常见问答 5283

java中的基础知识还是十分多的,而且应用的范围也是十分广阔的。上次已经为大家介绍过java基础算法题,四个实例分享,今天再来介绍一些其它的实例,一起来看看吧。

一、TestAge.java

题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。代码展示如下:

package cn.edu.hit;
/**
 * 题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。
 * 问第2个人,说比第一个人大两岁。
 * 最后问第一个人,他说是10岁。
 * 请问第五个人多大? 
 * 1.程序分析:利用递归的方法,递归分为回推和递推两个阶段。
 * 要想知道第五个人岁数,需知道第四人的岁数,依次类推,推到第一人(10岁),再往回推。
 * @author tonylp
 */
public class testAge
{
    public static void main(String[] args)
    {
        System.out.println(age(5));
    }
    public static int age(int n)
    {
        int c;
        if (n == 1)
        {
            c = 10;
        }
        else
        {
            c = age(n - 1) + 2;
        }
        return c;
    }
}

二、TestNumber.java

题目:给一个不多于5位的正整数,要求:一、求它是几位数,逆序打印出各位数字。代码展示如下:

package cn.edu.hit;
/**
 * 题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
 * 
 * @author tonylp
 */
import java.util.Scanner;
public class testNumber
{
    public static void main(String[] args)
    {
        System.out.println("请输入一个正整数:");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int[] a = new int[5];
        int b = 0;
        int n = 0;
        for (int i = 4; i >= 0; i--)
        {
            b = (int) Math.pow(10, i);
            if (num / b != 0 && i >= n)
            {
                n = i + 1; //位数=最高位+1
            }
            a[i] = num / b;
            num = num - a[i] * b;
        }
        System.out.println("位数:" + n);
        for (int j = 0; j < n; j++)
        {
            if (a[j] != -1)
            {
                System.out.print(a[j] + "\t");
            }
        }
        System.out.println("");
        //test();
    }
    //另一种简单方法
    /*
    public static void test(){
        System.out.println("请输入一个正整数:");
        Scanner sc = new Scanner(System.in);
        String num = sc.nextLine();
        int numLength = num.length();
        System.out.println("位数:"+numLength);
        for(int i = numLength-1; i>=0;i--){
            System.out.print(num.charAt(i)+"\t");
        }
    }
    */
}

三、SuShu.java

题目:求100之内的素数,代码展示如下:

package cn.edu.hit;
/**
 * 题目:求100之内的素数 
 * @author tonylp
 *
 */
public class suShu
{
    public static void main(String[] args)
    {
        int j = 0;
        int flag = 0;
        for (int i = 2; i < 100; i++)
        {
            j = (int)(Math.sqrt(i));
            for (int k = 2; k <= j; k++)
            {
                if (i % k == 0)
                {
                    flag = 1;
                }
            }
            if (flag == 0)
            {
                System.out.println(i);
            }
            flag = 0;
        }
    }
}

以上就是关于java基础算法题,TestAge.java、TestNumber.java和SuShu.java,实例代码分享的主要内容了。如果你对java知识感兴趣,想要了解更多java经典例子,敬请关注奇Q工具网。

推荐阅读:

java基础算法题, TestAdd2.java和TestJieCheng.java,实例代码分享

java基础算法题,Nine.java、MonkeyEatPeach.java和LingXing.java,实例分享

java基础算法题,FindNumber.java、TestDay.java和TestCompare.java