Java基础之练习题02

想测试的话,复制然后在main方法里调用一下就完事了

1.(for循环)计算1+2+3+…100的和
代码:

//1到100的累加
	public static void q_1(){
		int sum = 0;
		for(int i=1;i<=100;i++){
			sum+=i;
		}
		System.out.println("sum:"+sum);
	}

2.(for循环)计算1+3+5+…+99的和
代码:

//100以内单数的累加
public static void q_2(){
	int sum= 0;
	for(int i=1;i<100;i=i+2){
	sum+=i;
	}
	System.out.println("sum:"+sum);
}

3.(while/do while循环)把1、2两题用while、do while改写
代码1:

//用while计算
public static void q_3(){
	int sum1 = 0;
	int sum2 = 0;
	int i = 1;
	int j = 1;
	while(i<=100){
		sum1+=i;
		i++;
	}
	System.out.println("sum1:"+sum1);
	
	while(j<100){
		sum2+=j;
		j=j+2;
	}
	System.out.println("sum2:"+sum2);
}

代码2:

//用do-while计算,之所以加个参数是因为这个方法不知道起什么名字
//干脆就使用了方法的重载,这个参数并没有什么卵用,纯属区分上面的方法
public static void q_3(Scanner sca){
	int sum1 = 0;
	int sum2 = 0;
	int i = 1;
	int j = 1;
	do{
		sum1+=i;
		i++;
	}while(i<=100);
	System.out.println("sum1:"+sum1);
	do{
		sum2+=j;
		j=j+2;
	}while(j<100);
	System.out.println("sum2:"+sum2);
}

4.for(循环)读入一个小于10的整数n,输出它的阶乘m
代码:

//读入一个小于10的整数n,输出它的阶乘n
public static void q_4(Scanner sca) {
	System.out.println("请输入一个小于10的整数");
	int num = sca.nextInt();
	//判断输入的数是否满足要求
	if(0<num&&num<10) {
		int mul = 1;
		for(int i=1;i<=num;i++) {
			mul=mul*i;
		}
		System.out.println(num+"的阶乘为"+mul);
	}else {
	//若不满足,则递归自己
		System.out.println("输入错误,请重新输入");
		q_4(sca);
	}
}

5.(for循环)求100以内所用能被3整除但不能被5整除的数字的和
代码:

//求100以内所有能被3整除但不能被5整除的数字的和
public static void q_5() {
	int sum = 0;
	for(int i=1;i<=100;i++) {
		if(i%3==0&&i%5!=0) {
			sum+=i;
		}
	}
	System.out.println(sum);
}

6.(for循环)"百钱买百鸡"是我国著名的数学题
题目描述:3文钱可以买一只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡,用100文钱买了100只鸡,那么各有公鸡,母鸡,小鸡多少只
代码:

//百钱买百鸡问题
public static void q_6() {
	for(int i=0;i<100;i++) {
		for(int j=0;j<100;j++) {
			if(3*i+2*j+(100-i-j)/3==100&&(100-i-j)%3==0) {
				System.out.print("公鸡有"+i+"只,");
				System.out.print("母鸡有"+j+"只,");
				System.out.println("小鸡有"+(100-i-j)+"只");
			}
		}
	}
}

7.(for循环)搬砖问题,36块砖,36人搬,男搬4,女搬3,两个小孩抬一砖,要求一次搬完,问男,女,小孩各若干
代码:

//搬砖问题
public static void q_7() {
	for(int i=0;i<36;i++) {
		for(int j=0;j<36;j++) {
			if(4*i+3*j+(36-i-j)/2==36&&(36-i-j)%2==0) {
				System.out.print("男人有"+i+"人,");
				System.out.print("女人有"+j+"人,");
				System.out.println("小孩有"+(36-i-j)+"人");
			}
		}
	}
}

8.(for循环)编程找出四位整数abcd中满足(ad+cd)(ab+cd)=abcd的数.
代码:

//计算(ad+cd)(ab+cd)=abcd
	public static void q_8() {
		int ab,cd;
		for(int i=1000;i<10000;i++) {
			ab=i/100;
			cd=i%100;
			if((ab+cd)*(ab+cd)==i) {
				System.out.println(i);
			}
		}
	}

9.(for循环)读入一个整数N,输出N行等腰三角形
代码:

//打印等腰三角形
public static void q_9(Scanner sca) {
	System.out.print("请输入你想打印三角形的行数:");
	int num = sca.nextInt();
	for(int i=0;i<num;i++) {
		for(int j=0;j<2*num;j++) {
			if(j==num||(j<=num+i&&j>=num-i)) {
				System.out.print("* ");
			}else {
				System.out.print("  ");
			}
		}
		System.out.println();
	}
}

10.输出九九乘法表
代码:

//打印99乘法表
	public static void q_10() {
		for(int i=1;i<10;i++) {
			for(int j=1;j<=i;j++) {
				System.out.print(j+"*"+i+"="+i*j+"  ");
			}
			System.out.println();
		}
	}

11.求"水仙花数"
提示:所谓水仙花数,指一个三位数abc,如果满足a3+b3+c3=abc
代码:

//求水仙花数
public static void q_11() {
	for(int i=100;i<1000;i++) {
		int ge = i%10;
		int shi = (i/10)%10;
		int bai = i/100;
		if(ge*ge*ge+shi*shi*shi+bai*bai*bai==i) {
			System.out.println(i);
		}
	}
}

猜你喜欢

转载自blog.csdn.net/qq_43336579/article/details/107875157