java基础题目练习

1.从控制台输入2个数字,求两者之间最大值,再从控制台输入3个数字,求三个数字的最大值,用三目运算符求。

package com.etc.demo;

import java.util.Scanner;

public class Seven {

	public static void main(String[] args) {
//从控制台输入2个数字,求两者之间最大值,再从控制台输入3个数字,求三个数字的最大值,用三目运算符求。		
		Scanner scan= new Scanner(System.in);
		System.out.println("请输入第一个数");
		int a=scan.nextInt();
		System.out.println("请输入第二个数");
		int b=scan.nextInt();
		int max;
		max=a>b?a:b;
		System.out.println("两数中较大的是"+max);
		System.out.println("请输入第三个数");
		int c=scan.nextInt();
		int bigMax;
		bigMax=max>c?max:c;
		System.out.println("三个数中较大的是"+bigMax);
		
		
	}

}

2.输入年月日,判断这是这一年中的第几天

package com.etc.demo;

import java.util.Scanner;

public class Eight {

	public static void main(String[] args) {
		// 输入年

		Scanner scan = new Scanner(System.in);
		System.out.print("请输入年月日:");
		int nian = scan.nextInt();
		int yue = scan.nextInt();
		int ri = scan.nextInt();
		int d = 0;
		int alldays = 0;
		for (int i = 0; i < yue; i++) {
			switch (i) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				d = 31;
				break;
			case 2:

				if (nian % 4 == 0 && nian % 100 != 0 || nian % 400 == 0) {
					d = 29;
					break;
				} else {
					d = 28;
					break;
				}
			case 4:
			case 6:
			case 9:
			case 11:
				d = 30;
				break;
			}
			alldays += d;
		}

		alldays += ri;

		System.out.println(nian + "年" + yue + "月" + ri + "日" + "一年中的第几天:" + alldays);
	}

}

3. 由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后的数位4321;

package com.etc.demo;

import java.util.Scanner;

public class Nine {

	public static void main(String[] args) {
//由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后的数位4321		
		System.out.println("请输入一个四位整数");
		Scanner scan=new Scanner(System.in);
		int a=scan.nextInt();
		int qian=a/1000;
		int bai=a/100%10;
		int shi=a/10%10;
		int ge=a%10;
		System.out.println("你输入的数为"+a);
		System.out.println("反转的数为"+ge+shi+bai+qian);
		
		
		

	}

}

4.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。

package com.etc.demo;

import java.util.Scanner;

public class Ten {

	public static void main(String[] args) {
		// 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。
		Scanner scan = new Scanner(System.in);
		System.out.println("请输入数字:");
		int n = scan.nextInt();
		System.out.print(n + "="); // 进行前半部分的打印

		// 做出判断循环
		for (int k = 2; k <= n; k++) {
			while (n != k) {
				if (n % k == 0) {
					System.out.print(k + "*");
					n = n / k;
				} else {
					break;
				}
			}
		}

		System.out.println(n); // 表示打印出的是最后一个数

	}

}

5.李先生岁数的平方与他的夫人的岁数之和是1053,而他的夫人的岁数的平方与他的岁数之和是873,请编写程序计算李先生及其夫人的岁数各是多少。

package com.etc.demo;

public class Two {

	public static void main(String[] args) {
		
		for(int a=0;a<=100;a++){
			for(int b=0;b<=100;b++){
				if((a*a+b==1053)&&(b*b+a==873)){
					System.out.println("李先生岁数"+a);
					System.out.println("李夫人岁数"+b);
					
					
				}
				
				
				
			}
			
			
			
		}
		
		

	}

}

6.有两个正整数a和b,已知a*b=2048,求a、b各为何值时,a+b的值最小值。

package com.etc.demo;

class Three {

	public static void main(String[] args) {
		int max = 2049;
		int x;
		for (int a = 0; a <= 2048; a++) {
			for (int b = 0; b <= 2048; b++) {
				if (a * b == 2048) {

					x = a + b;
					if (max >= x) {
						max = x;
					}

				}

			}
		}
		System.out.println("a+b的最小值为"+max);

	}

}

7.用1、2、3、4能组成多少无重复数字的三位数

package com.etc.demo;

public class Seven {

	public static void main(String[] args) {
		// 用1、2、3、4能组成多少无重复数字的三位数
	int a=0;
		for (int i = 1; i < 5; i++) {
			for (int j = 1; j < 5; j++) {
				for (int l = 1; l < 5; l++) {

					if(i!=j&&l!=i&&l!=j){
						
						a++;
						
					}
					
					
				}

			}

		}

		System.out.println("用1,2,3,4能组成"+a+"个三位数");
	}

}

8.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第5次落地时,共经过多少米?再反弹弹起多少米?

package com.etc.demo;

public class Eight {

	public static void main(String[] args) {
		double s = 100;
		double l = 100;
		for (int i = 0; i < 5; i++) {
			s = s / 2;
			if (i == 4)
				{break;}
			l = s * 2 + l;

		}

		System.out.println("再反弹会反弹"+s+"米");
		System.out.print("共经过了"+l+"米");

	}

}

9.古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问12个月内每个月的兔子总数为多少?兔子的规律为数列1,1,2,3,5,8,13,21....

package com.etc.demo;

public class One {

	public static void main(String[] args) {
		int[] arr = new int[12];
		arr[0] = 1;
		arr[1] = 1;
		for (int i = 2; i < arr.length; i++) {
			arr[i] = arr[i - 1] + arr[i - 2];
		}
		System.out.println("第十个月的兔子总数为:" + arr[11]);

	}

}

10.猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个   第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下   的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。程序分析:采取逆向思维的方法,从后往前推断。

package com.etc.demo;

public class Ten {

	public static void main(String[] args) {

		int s = 1;
		for (int i = 0; i < 10; i++) {
			s = 2 * (s + 1);

		}
		System.out.println("猴子第一天摘了"+s+"桃子");

	}

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值