2021-07-12

java循环02·基础习题

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

int Tou = 35,  Zu = 94;
for(int x = 1; x < Tou; x++) { //鸡兔全有,所以任意一方
								  //总数不能超过35
	for(int y = 1; y <=Tou-1; y++) {//定义x为鸡,y为兔
		if (x+y==Tou && 2*x+4*y==Zu){//判断条件
			System.out.println(x+" "+y);
		}
	}
}

运行结果:
运行结果
2.鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?
代码:

//第一种方法:
System.out.println("第一种方法:");
//初始条件是否从0或1开始,取决于三种鸡是否都有
for (int 鸡翁 = 0; 鸡翁 < 20; 鸡翁++) {
	for (int 鸡母 = 0; 鸡母 < 33; 鸡母++) {
		for (int 鸡雏 = 0; 鸡雏 < 99; 鸡雏++) {
			if(鸡翁*15 + 鸡母*9 + 鸡雏 == 300 && 鸡翁 + 鸡母 + 鸡雏 ==100) {
			System.out.println("鸡翁:" + 鸡翁 + " 鸡母为:" + 鸡母 + " 鸡雏为:" + 鸡雏);
			}
		}
	}
}
//第二种方法:
System.out.println("第二种方法:");
for (int i = 0; i < 20; i++) {
	for (int j = 0; j <= 33; j++) {
		int k = 100 - i - j;
		if(k%3 != 0) {
			continue;
		}
		int n = i * 5 + j * 3 + k / 3;
		if(n==100) {
		System.out.println("鸡翁:" + i + " 鸡母为:" + j + " 鸡雏为:" + k);
		}
	}
}

运行结果:
运行结果
3.找出1000以内的质数
代码:

System.out.println("2 ");
for (int i = 3; i < 101; i++) {
	for (int j = 2; j < i; j++) {
		if (i%j == 0) {
			break;
		}else if(j == i-1) {
			System.out.print(" " + i);
		}
	}
}

运行结果:
运行结果
4.找出100以内的完数,完数是指该数字所有的真因数之和等于该数字;真因数是除了本身以外的因数,例如6的因数有1 2 3 6;真因数只有 1 2 3; 1+2+3=6 所以6是完数。
代码:

for (int i = 2; i < 100; i++) {
    int sum = 0;// 将sum += j;中的 sum 清零重置
    //查找因数
    for (int j = 1; j < i; j++) {
     	if (i % j == 0) {
            sum += j;
        }
    }
    if (sum == i)
        System.out.println(i);
}

运行结果:
运行结果
5.从控制台输入一个数字,数字是几,就输出几行乘法表
代码:


Scanner scan = new Scanner(System.in);
System.out.println("请输入数字:");
int w=scan.nextInt();
//正序
for (int j = 1; j <= w; j++) {//乘法表行数
	for (int j2 = 1; j2 <=j; j2++) {
		System.out.print(j2 + "*" + j + "=" + j2 * j + " " );
	}
	System.out.println();
}
//倒序
for (int j = w; j > 0; j--) {
	for (int j2 = 1; j2 < j+1; j2++) {
		System.out.print(j2 + "*" + j + "=" + j2 * j + " " );
	}
	System.out.println();
}

运行结果:
运行结果
6.不小于6的偶数,都可以分解成两个奇数的和
代码:

for (int num = 0; num < 18; num++) {
	for (int i = 1; i <= num/2; i++) {
		//保证 i + j = num;
		int j = num - i;
		//i和j都是奇数
		if(i%2 != 0 && j%2 !=0) {
			System.out.println(num + "=" + i + "+" + j);
		}
	}
}

运行结果:
运行结果
7.求和:1/1! + 1/2! + 1/3! + … + 1/20!
代码:

double sum_0=1;
double sum_1=0;
for (int i = 1; i < 21; i++) {
	sum_0 = sum_0 * i;
	sum_1 = sum_1 + 1/sum_0;
}
System.out.println(sum_1);

运行结果:
运行结果
8.按照以下格式输出:

					     *
					    * *
					   * * *
					  * * * *
					 * * * * *

代码:

int m = 2;
int n = 6;
for (int i = 1; i < 6; i++) {
	for (int j = 1; j < n; j++) {
		System.out.print(" ");	
	}
	for (int j = 1; j < m; j++) {
		System.out.print("* ");
		}
	System.out.println();
	m++;n--;
}

运行结果:
运行结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值