Java基础实例

本文通过四个实例介绍了日期计算及复杂逻辑思考的应用。包括利用switch和break计算具体日期是一年中的第几天,通过循环逻辑解决耗子繁殖问题,使用递归函数实现九九乘法表的打印,以及通过逻辑分析解决一千瓶药水中找出有毒瓶的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实例1. 求某年某月某天是这年的第多少天?

switch和break的灵活运用

<span style="font-size:14px;">package com.lovo.homework;


import java.util.Scanner;


public class TestHome1 {


<span style="white-space:pre">	</span>/**
<span style="white-space:pre">	</span> * @param args
<span style="white-space:pre">	</span> */
<span style="white-space:pre">	</span>public static void main(String[] args) {
<span style="white-space:pre">		</span>// TODO Auto-generated method stub
<span style="white-space:pre">		</span>/*
<span style="white-space:pre">		</span> * 输入年月日,得到这一天是当年的第几天
<span style="white-space:pre">		</span> * 思路:
<span style="white-space:pre">		</span> * 1、首先接收用户输入的年月日三个整数;
<span style="white-space:pre">		</span> * 2、根据根据月和日得到是第几天;
<span style="white-space:pre">		</span> * 3、如果月份超过2月,则根据年份是否是闰年判断给结果再加上1天
<span style="white-space:pre">		</span> * 4、打印出结果
<span style="white-space:pre">		</span> */
<span style="white-space:pre">		</span>Scanner scan = new Scanner(System.in);
<span style="white-space:pre">		</span>System.out.println("请输入年份:");
<span style="white-space:pre">		</span>int year = scan.nextInt();
<span style="white-space:pre">		</span>System.out.println("请输入月份:");
<span style="white-space:pre">		</span>int month = scan.nextInt();
<span style="white-space:pre">		</span>System.out.println("请输入日期:");
<span style="white-space:pre">		</span>int day = scan.nextInt();
<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>int dayOfYear = 0;//保存这是第几天的变量
<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>switch(month){
<span style="white-space:pre">		</span>case 12:
<span style="white-space:pre">			</span>dayOfYear += 30;
<span style="white-space:pre">		</span>case 11:
<span style="white-space:pre">			</span>dayOfYear += 31;
<span style="white-space:pre">		</span>case 10:
<span style="white-space:pre">			</span>dayOfYear += 30;
<span style="white-space:pre">		</span>case 9:
<span style="white-space:pre">			</span>dayOfYear += 31;
<span style="white-space:pre">		</span>case 8:
<span style="white-space:pre">			</span>dayOfYear += 31;
<span style="white-space:pre">		</span>case 7:
<span style="white-space:pre">			</span>dayOfYear += 30;
<span style="white-space:pre">		</span>case 6:
<span style="white-space:pre">			</span>dayOfYear += 31;
<span style="white-space:pre">		</span>case 5:
<span style="white-space:pre">			</span>dayOfYear += 30;
<span style="white-space:pre">		</span>case 4:
<span style="white-space:pre">			</span>dayOfYear += 31;
<span style="white-space:pre">		</span>case 3:
<span style="white-space:pre">			</span>dayOfYear += 28;
<span style="white-space:pre">		</span>case 2:
<span style="white-space:pre">			</span>dayOfYear += 31;
<span style="white-space:pre">		</span>case 1:
<span style="white-space:pre">			</span>dayOfYear += day;
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>if(month > 2){
<span style="white-space:pre">			</span>//判断是否是闰年
<span style="white-space:pre">			</span>if(((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0)){
<span style="white-space:pre">				</span>dayOfYear += 1;
<span style="white-space:pre">			</span>}
<span style="white-space:pre">		</span>}
<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>
<span style="white-space:pre">		</span>System.out.println(year + "年"+month+"月"+day+"日是这一年的第"+dayOfYear+"天。");
<span style="white-space:pre">		</span>
<span style="white-space:pre">	</span>}


}
</span>
实例2:

循环逻辑的思考方式

<span style="font-size:14px;">package com.lovo.homework;

public class TestHome3 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//一对老耗子每个月都生一对小子,小耗子长三个月,第四个月成长为
		//老耗子开始生!假设所有耗子都不死,20个月之后共有多少只耗子。
		
		int old = 2, first = 0, second = 0, third = 0;
		for(int i = 0; i < 20; i++){
			old = old + third;
			third = second;
			second = first;
			first = old;
		}
		
		System.out.println("20个月后总共有" + (old + first + second + third) + "只耗子.");
		
		
	}

}</span>

实例3:

用函数方法的方式些九九乘法表

<span style="font-size:14px;">public class 九九乘法表 {
/**
 */
	public static void main(String[] args) {
		count(1, 1);

	}

	public static void count(int i, int j) {
		// 
		int c = i * j;
		System.out.print(i + "*" + j + "=" + c + "\t");
		if (j > i) {// 
			i++;
		} else if (i == j) {//
			System.out.println();
			i = 1;
			j++;
		} else {// 
			j++;
		}
		if (i == 10 || j == 10) {
			return;		//
		}
		count(i, j);
	}
}</span>

实例4:1000瓶药水里面有1瓶是有毒的,现在要用小白鼠试毒,需24h后才能看到效果,医生需在24h检查出结果,求至少需要几只小白鼠才能确定哪一瓶有毒的??(每只小白鼠可以同时试尝多瓶药水)

逻辑的思维考研

分析:

1瓶药水,需要至少1只小白鼠试出结果;

2瓶药水,需要至少1只小白鼠试出结果;

3瓶药水,需要至少2只小白鼠试出结果;
4瓶药水,需要至少2只小白鼠试出结果;
5瓶药水,需要至少3只小白鼠试出结果;

可以推测,1只小白鼠有2种状态-----生和死    或者是----1 和 0 ;即可以表示2种状态的;

2只小白鼠时,则可以表示2^2=4种状态,则可以最多检验4个瓶子;

n个小白鼠,则可以表示2^n种状态,

1000个瓶子,需要2^10=1024个瓶子;即10个小白鼠;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值