JAVA课后练习题

 第一题——第七题

package edu;

import java.util.Scanner;

public class Test_01_07 {
	public static void main(String[] args) {
		/*
		 * 1.求1至1000之间满足
		 * “用3除余2;用5除余3;用7除余2”的数,
		 * 且一行只打印5个数
		 */
		int index = 0;
		
		for(int i = 1;i < 1000;i++) {
			if(i % 3 == 2 && i % 5 == 3 && i % 7 == 2) {
				System.out.print(i + "\t");
				index++;
				if(index % 5 ==0) {
					System.out.println();
				}
			}
		}
		System.out.println("**************************");
		
		/*
		 * 2.求1-3+5-7+ …… -99+101的值
		 */
		int sum = 0;
		for(int i = 1;i < 101;i += 2) {
			if (i % 2 == 0){
				sum -= i;
			}else {
				sum += i;
			}
		}
		System.out.println("最终结果为:" + sum);
		
		System.out.println("**************************");
		
		/*
		 * 3.打印出所有的“水仙花数”,所谓“水仙花数”是指
		 * 一个三位数,其各位数字立方和等于该数本身
		 */
		for(int num = 100;num < 1000;num++) {
			int num1 = num % 10;
			int num2 = num / 10 % 10;
			int num3 = num / 100;
			
			double num4 = Math.pow(num1,3);
			double num5 = Math.pow(num2,3);
			double num6 = Math.pow(num3,3);
			
			if(num4 + num5 + num6 == num) {
				System.out.println("三位长度的水仙花数有:" + num);
			}
			
		}
		System.out.println("**************************");
		
		/*
		 * 4.输入两个正整数m和n,求其最大公约数和最小公倍数
		 */
		System.out.println("请输入两个正整数:");
		Scanner input = new Scanner(System.in);
		
		int m = input.nextInt(),n = input.nextInt();
		input.close();
		
		if(m < n) {
			int temp = m;
			m = n;
			n = temp;
		}
		
		if(m % n == 0) {
			System.out.println("m和n的最大公约数为:" + n);
			System.out.println("m和n的最大公倍数为:" + m);
		}else{
			int a = m,b= n;
			
			while(n > 0) {
				int temp1 = m % n;
				m = n;
				n = temp1;
			}
			System.out.println("m和n的最大公约数为:" + m);
			System.out.println("m和n的最大公倍数为:" + (a * b / m));
		}
		System.out.println("**************************");
		
		/*
		 * 5.百元百鸡问题:公鸡5元一只,母鸡3元一只,3只小鸡1元,
		 * 如果用100元钱,买100只鸡,不佘不欠,
		 * 可以买公鸡,母鸡,小鸡,各多少只
		 */
		int num_cock,num_chick ;
		
		for(num_cock = 1;num_cock < 20;num_cock++) {
			for(num_chick = 3;num_chick < 300;num_chick += 3) {
					if(num_cock * 5 + num_chick / 3 +(100-num_cock-num_chick) * 3 == 100 && 100 - num_cock - num_chick > 0) {
						System.out.printf("公鸡:%d,母鸡:%d,小鸡:%d\n",num_cock,(100 - num_cock - num_chick),num_chick);
				}
			}
		}
		System.out.println("**************************");
		
		
		/*
		 * 6.编写一个Java应用程序,用循环结构打印如下的数值列表:
		 * N                 10*N                 100*N               1000*N
		 * 1                  10                    100                 1000
		 * 2                  20                    200                 2000
		 * 3                  30                    300                 3000
		 * 4                  40                    400                 4000
		 * 5                  50                    500                 5000
		 */
		int floor;
		for(floor = 0;floor < 6;floor++) {
			if(floor == 0) {
				for(int i = 0;i < 4;i++) {
					int multiple = i * 10;
					System.out.printf("%d*N\t",multiple);
				}System.out.println();
			}else {
				int index1 = 0;
				for(int i = 1;i < 5;i++) {
					int multiple = floor * (int)(Math.pow(10,i-1));
					System.out.printf("%d\t",multiple);
					index1++;
					if(index1 == 4) {
						System.out.println();
					}
				}
			}
		}
		System.out.println("**************************");
		
		/*
		 * 7.打印2到10000的所有素数,每行显示8个素数
		 */
		System.out.println("2到10000的所有素数有:\n");
		int i,j;
		int count = 1;
		for(i = 2;i <= 10000;i++) {
			for(j = 2;j < i;j++) {
				if(i % j == 0)
					break;
			}
			if(j >= i) {
				System.out.printf("%d\t",i);
				count++;
				if(count % 8 == 0) {
					System.out.println("");
				}
			}
		}
	}
}

 第八题——第十四题

import java.util.Scanner;

public class Test_08_14 {
	public static void main(String[] args) {
		/*
		 * 8.3000米长的绳子,每天减一半,问,需要多少天,绳子会小于5米?
		 */
		int len = 3000,count = 0;
		boolean t = true;
		
		while(t) {
			len /= 2;
			count++;
			if(len<=5) {
				t = false;
				System.out.printf("小于5m需要:%d 天",count);
			}
		}
		
		/*
		 * 9.显示从101到2100期间所有的闰年,每行显示10个,之间用制表符分割
		 */
		int count1 = 0;
		System.out.println("101到2100之间的闰年有:");
		for(int year = 101;year <= 2100;year++) {
			if(year % 4 == 0 && year % 100 != 0 ||year % 400 == 0) {
				count1++;
				System.out.printf("%d\t",year);
				if(count1 % 10 == 0) {
					System.out.println("");
				}
			}
		}
		
		/*
		 * 10.猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。
		 * 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
		 * 以后每天早上都吃了前一天剩下的一半零一个。
		 * 到第十天早上在想吃时,就只剩一个桃子了。求第一天共摘了多少个桃子?
		 */
		int x = 1;
		for(int day = 10;day > 1;day--) {
			x = (x + 1) * 2;
		}
		System.out.printf("第一天摘了:%d 个桃子",x);
		
		
		/*
		 * 11.养老无忧计划:以目前的生活水平想要无忧养老需要存够600万养老金,
		 * 假设你每年可以存N万,年利率为3%,问需要做牛做马多少年?
		 */
		System.out.println("请输入你每年能存的钱(万元):");
		Scanner input = new Scanner(System.in);
		
		int N = input.nextInt();
		double all_salary = 0;
		int work_year = 0;
		boolean t1 = true;
		
		while(t1) {
			work_year++;
			all_salary = all_salary + (all_salary * 0.03) + N;
			if(all_salary >= 600) {
				t1 = false;
				System.out.printf("你需要做牛做马 %d 年",work_year);
			}
		}
		
		
		/*
		 * 12.鸡兔同笼:今有雉(鸡)兔同笼,上有三十五头,下有九十四足。问雉兔各几何。
		 */
		int num_rabbit = 0;
		int num_chick = 0;
		
		for(;num_rabbit < 35;num_rabbit++) {
			num_chick = (94 - num_rabbit * 4) / 2;
			if(num_rabbit + num_chick == 35) {
				System.out.printf("笼子里有兔子:%d 只,有鸡:%d 只",num_rabbit,num_chick);
				break;
			}
		}
		
		/*
		 * 13.有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。
		 * 问第4个人岁数,他说比第3个人大2岁。问第3个人,又说比第2人大2岁。
		 * 问第2个人,说比第1个人大2岁。最后问第1个人,他说是10岁。
		 * 请问第五个人多大?
		 */
		int age = 10;
		for(int i = 1;i < 5;i++) {
			age = age + 2; 
		}
		System.out.printf("第5个人:%d 岁",age);
		
		/*
		 * 14.有1、2、3、4四个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
		 */
		int count2 = 0;
		for(int i = 1 ;i <= 4;i++) {
			for(int j = 1;j <= 4 ;j++) {
				for(int k = 1;k <= 4;k++) {
					if(i != j && j != k && k != i) {
						System.out.printf("%d\t\n",i*100 + j*10 + k);
						count2++;
					}
				}
			}
		}
		System.out.printf("总共有:%d 种组合方式",count2);
	}
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Uddddr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值