【Java编程强化练习】-循环条件

1.今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?

public class Practice01 {
	public static void main(String[] args) {
		// 循环初始化
		int ji = 1; // 鸡的数量
		while (ji <= 35) { // 循环条件
			int tu = 35 - ji;
			// 算腿的数量
			int num = 2 * ji + 4 * tu;
			if (num == 94) {
				System.out.println("鸡的数量:" + ji + "\n兔的数量:" + tu);
			}
			ji++; // 循环迭代
		}
	}
}

2.某次数学考试考五道题,全班52人参加,共做对181道题,已知每人至少做对1道题,做对1道的有7人,5道全对的有6人,做对2道和3道的人数一样多,那么做对4道的人数有多少人

public class Practice02 {

	public static void main(String[] args) {
		// 循环作对2道或3道的人
		for (int i = 1; i <= 14; i++) {

			int j = 39 - 2 * i;// 作对4道的人数

			// 181道题
			if (7 + 6 * 5 + 2 * i + 3 * i + 4 * j == 181) {
				System.out.println(i + "\t" + j);
			}
		}
	}
}

3.一份稿件,甲单独打字需6小时完成.乙单独打字需10小时完成,甲单独打若干小时后,因有事由乙接着打完,共用了7小时。甲打字用了多少小时?

public class Practice03 {
	public static void main(String[] args) {

		double jia = 0; // 甲的用时
		while (jia <= 7) {
			double yi = 7 - jia;	//乙的用时
			if (10 * jia + 6 * yi == 60) {
				System.out.println("甲打字用了" + jia + "小时");
			}			
			jia += 0.1;
		}		
	}
}

4.学校买来6张桌子和5把椅子共付455元,已知每张桌子比每把椅子贵30元,桌子和椅子的单价各是多少元

public class Practice04 {

	public static void main(String[] args) {
		// 循环椅子的价格
		for (int yz = 1; yz <= 41; yz++) {
			// 桌子的价格
			int zz = yz + 30;

			if (zz * 6 + yz * 5 == 455) {
				System.out.println("桌子:" + zz + "\t椅子:" + yz);
			}

		}
	}
}

5.甲、乙两队共同修一条长400米的公路,甲队从东往西修4天,乙队从西往东修5天,正好修完,甲队比乙队每天多修10米。甲、乙两队每天共修多少米

public class Practice05 {

	public static void main(String[] args) {
		for (int jia = 1; jia <= 100; jia++) {

			int yi = jia - 10;

			if (jia * 4 + yi * 5 == 400) {
				System.out.println("甲:" + jia + "\t乙:" + yi);
			}
		}
	}
}

6.蜘蛛有8条腿,蜻蜓有6条腿和2对翅膀,蝉有6条腿和1对翅膀。这三种小虫共18只,有118条腿和20对翅膀.每种小虫各几只?

public class Practice06 {

	public static void main(String[] args) {
		for (int zz = 1; zz <= 18; zz++) {

			for (int qt = 1; qt <= 10; qt++) {

				int c = 18 - zz - qt;// 18只
				// 翅膀和腿
				if (zz * 8 + qt * 6 + c * 6 == 118 && qt * 2 + c == 20) {
					System.out.println("蜘蛛:" + zz + "\t蜻蜓:" + qt + "\t蝉:" + c);
				}
			}
		}
	}
}

7.输入一个正整数,将其因式分解,例如90=12335;

import java.util.Scanner;
public class Practice07 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);

		System.out.print("请输入数字:");
		int num = input.nextInt();
		System.out.print(num + "=1");

		int i = 2;
		while (num != 1) {
			if (num % i == 0) {
				System.out.print("*" + i);
				num = num / i;
			} else {
				i++;
			}
		}
		input.close();
	}
}

8.输入两个正整数m和n,求其最大公约数和最小公倍数(选作)

import java.util.Scanner;
public class Practice08 {
	public static void main(String[] args) {
		// System.out.println(getMax(10, 15));
		Scanner input = new Scanner(System.in);

		System.out.print("请输入第一个数字:");
		int num1 = input.nextInt();
		System.out.print("请输入第二个数字:");
		int num2 = input.nextInt();

		System.out.println("最大公约数:" + getMax(num1, num2));
		System.out.println("最小公倍数:" + getMin(num1, num2));
		input.close();
	}

	/**
	 * 求两个正整数的最大公约数
	 * @param m :第一个正整数
	 * @param n :第二个正整数
	 * @return
	 */
	public static int getMax(int m, int n) {
		while (m != n) {
			if (m > n) {
				m = m - n;
			} else {
				n = n - m;
			}
		}
		return m;
	}

	/**
	 * 求两个正整数的最小公倍数
	 * @param m :第一个正整数
	 * @param n :第二个正整数
	 * @return
	 */
	public static int getMin(int m, int n) {
		return (m * n) / getMax(m, n);
	}
}

9.一张纸的厚度为0.08mm,需要对折多少次才能到达珠穆朗玛峰的高度(8848.13m)

public class Practice09 {
	public static void main(String[] args) {
		double width = 0.00008;
		int count = 0;
		while (width <= 8848.13) {
			// 对折
			width += width;
			count++;
		}
		System.out.println(count);
	}
}

10.用1、2、3、4四个数字,可以组成多少个互不相同且无重复数字的三位数?都是多少?

public class Practice10 {
	public static void main(String[] args) {
		int count = 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 && i != k && j != k) {
						System.out.println(i * 100 + j * 10 + k);
						count++;
					}
				}
			}
		}
		System.out.println("共有" + count);
	}
}

你可能感兴趣的:(编程基础强化,java)