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

BSO 2020-10-15 16:19:33 java常见问答 6482

随着高科技时代的到来,高新技术已经渗透到我们生活的方方面面了。大家对于它们的了解也更加的深入。今天就来为大家介绍java基础算法题,并分享实例方便理解。一起来看看吧。

一、FindNumber.java

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?

1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。代码展示如下:

package cn.edu.hit;
/**
 * 题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 
 * 1.程序分析:在10万以内判断,先将该数加上100后再开方,
 * 再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。
 * 请看具体分析:
 * @author tonylp
 */
public class findNumber
{
    public static void main(String[] args)
    {
        for (int i = 0; i < 100000; i++)
        {
            if ((Math.sqrt(i + 100) % 1 == 0) && (Math.sqrt(i + 168) % 1 == 0))
            {
                System.out.println(i);
            }
        }
    }
}

二、TestDay.java

题目:输入某年某月某日,判断这一天是这一年的第几天?

1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。代码展示如下:

package cn.edu.hit;
import java.util.Scanner;
/**
 * 题目:输入某年某月某日,判断这一天是这一年的第几天? 1.程序分析:以3月5日为例,应该先把前两个月的加起来, 然后再加上5天即本年的第几天,
 * 特殊情况,闰年且输入月份大于3时需考虑多加一天。
 * 
 * @author tonylp
 */
public class testDay
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入年份:");
        int year = sc.nextInt();
        System.out.println("请输入月份:");
        int month = sc.nextInt();
        System.out.println("请输入天数:");
        int day = sc.nextInt();
        int date = 0;
        int arr[] = {
            31
            , 28
            , 31
            , 30
            , 31
            , 30
            , 31
            , 31
            , 30
            , 31
            , 30
            , 31
        };
        if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0))
        {
            arr[1] = 29;
        }
        for (int i = 0; i < month - 1; i++)
        {
            date += arr[i];
        }
        date += day;
        System.out.println("天数为:" + date);
    }
}

三、TestCompare.java

题目:输入三个整数x,y,z,请把这三个数由小到大输出。

1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。代码展示如下:

package cn.edu.hit;
import java.util.Scanner;
/**
 * 题目:输入三个整数x,y,z,请把这三个数由小到大输出。 
 * 1.程序分析:我们想办法把最小的数放到x上,
 * 先将x与y进行比较,如果x>y则将x与y的值进行交换,
 * 然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。
 * @author tonylp
 */
public class testCompare
{
    public static void main(String[] args)
    {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入x:");
        int x = sc.nextInt();
        System.out.println("请输入y:");
        int y = sc.nextInt();
        System.out.println("请输入z:");
        int z = sc.nextInt();
        int temp;
        if (x > y)
        {
            temp = x;
            x = y;
            y = temp;
        }
        if (x > z)
        {
            temp = x;
            x = z;
            z = temp;
        }
        if (y > z)
        {
            temp = y;
            y = z;
            z = temp;
        }
        System.out.println("从小到大的顺序为:" + x + "<" + y + "<" + z);
    }
}

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

推荐阅读:

java基础算法题,四个实例分享

java基础算法题,兔子问题和水仙花束

java学习书籍推荐,基础篇