java基础算法题,YangHui.java、Test3Quit.java和MonkeyPeach.java实例分享

BSO 2020-10-20 16:07:51 java常见问答 7092

上次已经为大家介绍过java基础算法题,FindNumber.java、TestDay.java和TestCompare.java,今天再为大家介绍其它的算法题,也是比较基础的,同样会用实例来展示,一起来了解一下吧。

一、YangHui.java

题目:打印出杨辉三角形(要求打印出10行如下图)

1.程序分析:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

代码展示如下:

package cn.edu.hit;
import java.util.Scanner;
/**
 * 题目:打印出杨辉三角形(要求打印出10行如下图) 1.程序分析: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1
 * 现在打印出的格式不是很好看。
 * @author tonylp
 * 
 */
public class yanghui
{
    public static void main(String[] args)
    {
        System.out.println("请输入行数:");
        Scanner sc = new Scanner(System.in);
        int line = sc.nextInt();
        int[] a = new int[line];
        for (int i = 0; i < line; i++)
        {
            a[i] = 1;
        }
        if (line == 1)
        {
            System.out.println(1);
        }
        else if (line == 2)
        {
            System.out.println(1);
            System.out.println(1 + "\t" + 1);
        }
        else
        {
            System.out.println(1);
            System.out.println(1 + "\t" + 1);
            for (int i = 1; i < line - 1; i++)
            {
                for (int j = i; j >= 1; j--)
                {
                    a[j] = a[j] + a[j - 1];
                }
                for (int k = 0; k < i + 2; k++)
                {
                    System.out.print(a[k] + "\t");
                }
                System.out.println();
            }
        }
    }
}

二、Test3Quit.java

题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

代码展示如下:

package cn.edu.hit;
import java.util.Scanner;
/**
 * 题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子, 问最后留下 的是原来第几号的那位。
 * 
 * @author tonylp
 * 
 */
public class test3Quit
{
    public static void main(String[] args)
    {
        System.out.println("请输入n:");
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[] a = new int[n];
        int i = 0;
        int t = 0;
        while (n > 1)
        {
            if (a[i] == 0)
            {
                t++;
                if (t == 3)
                {
                    t = 0;
                    a[i] = 1;
                    n--;
                }
            }
            i++;
            if (i == a.length)
            {
                i = 0;
            }
        }
        for (int j = 0; j < a.length; j++)
        {
            if (a[j] != 1)
            {
                System.out.println(j + 1);
            }
        }
    }
}

三、MonkeyPeach.java

题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?

代码展示如下:

package cn.edu.hit;
/**
 * 题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一
 * 个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中 ,
 * 拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?
 * 
 * @author tonylp
 * 
 */
public class monkeyPeach
{
    public static void main(String[] args)
    {
        int monkey = 0;
        int a = getPeach(monkey);
        System.out.println(a);
    }
    public static int getPeach(int monkey)
    {
        if (monkey < 5)
        {
            return (getPeach(monkey + 1) * 5 + 1);
        }
        else
        {
            return 1;
        }
    }
}

四、 TestEven.java

题目:一个偶数总能表示为两个素数之和。

代码展示如下:

package cn.edu.hit;
import java.util.Scanner;
/**
 * 题目:一个偶数总能表示为两个素数之和。
 * 
 * @author tonylp
 */
public class testEven
{
    public static void main(String[] args)
    {
        System.out.println("请输入一个偶数:");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int j = 0;
        int num2 = 0;
        int flag = 0;
        int tag = 0;
        int temp = 0;
        if (num % 2 != 0 || num == 0)
        {
            System.out.println("输入数据错误!");
        }
        else
        {
            for (int i = 3; i < num; i++)
            {
                j = (int) Math.sqrt(i);
                for (int k = 2; k <= j; k++)
                {
                    if (i % k == 0)
                    {
                        flag = 1;
                    }
                }
                if (flag == 0)
                {
                    num2 = num - i;
                    temp = (int) Math.sqrt(num2);
                    for (int k = 2; k <= temp; k++)
                    {
                        if (num2 % k == 0)
                        {
                            tag = 1;
                        }
                    }
                    if (tag == 0 && num2 >= 3)
                    {
                        System.out.println(num + "=" + i + "+" + num2);
                    }
                    tag = 0;
                }
                flag = 0;
            }
        }
    }
}

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

推荐阅读:

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

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

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