顺序 、选择 、循环控制流程、递归简单习题

1. 输入三边的长度,求三角形的面积和周长(海伦公式)

2 .设计一个程序,完成(英雄)商品的购买
    展示商品信息(折扣)->输入商品价格->输入购买数量->提示付款
    输入付款金额->打印购买小票(扩展)    

import java.util.Scanner;
public class shopping{
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		int choice1;
		boolean flag = true;
		
		while(flag){
			do{
				System.out.println("\t\t英雄联盟商城登录界面");
				System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
				System.out.println("\t\t1. 用户登录");
				System.out.println("\t\t2. 新用户注册");
				System.out.println("\t\t3. 退出系统");
				System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
				System.out.print("(温馨提示)请输入您的选项:");
				choice1 = input.nextInt();
				if(choice1 == 1 || choice1 == 2 || choice1 == 3){
					break;
				}else{
				System.out.println("\t\t对不起,输入的数字需在1~3之间");
			}
			}while (choice1 == 1 || choice1 == 2 || choice1 == 3);//输入的数字在1~3之间
			
					switch (choice1){
						case 1 :
							System.out.println("\t\t英雄联盟商城首页");
							System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
							System.out.println("\t\t1. 进入英雄超市");
							System.out.println("\t\t2. 休闲小游戏");
							System.out.println("\t\t3. 退出系统");
							System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
							System.out.print("(温馨提示)请输入您的选项:");
							int choice2 = input.nextInt();
							switch(choice2){
								case 1:
									System.out.println("\t\t\t\t英雄商城英雄列表");
									System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
									System.out.println("\t\t编号  姓名     昵称     价格  库存  描述");
									System.out.println("\t\t1     纳尔   迷失之牙  3500  100  丛林不会原谅盲目与无知");
									System.out.println("\t\t2     锐雯   放逐之刃  4000  100  她是残忍高效的战士  ");
									System.out.println("\t\t3     薇恩   暗夜猎手  3500  100  这个世界不想人们想象的那么美好");
									System.out.println("\t\t4     扎克   生化魔人  3000  100  即使你没有脊柱,你也必须站起来");
									System.out.println("\t\t5     杰斯  未来守护者 2500  100  武装着睿智与魅力,你的选择没有错");
									System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~");
									System.out.print("(温馨提示)请输入您要购买的英雄编号:");
									int choice3 = input.nextInt();
									System.out.println("\t\t\t\t英雄商城购买英雄");
									System.out.println("英雄购买票据");
									System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ *");
									System.out.println();
									System.out.println("\t\t英雄属性:生命值428(+85)/能量值200(+0)/移动速度425/攻击力55.8(+3.2)攻击速度0.651(+3.1%)/护甲值24(+1.25)/攻击距离125");
									System.out.println("\t\t英雄座右铭:一人之行可灭世,众人之勤可救世!");
									System.out.println("\t\t活动折扣:9.5");
									System.out.println();
									System.out.println("\t\t插播广告:当风云变色,当流离失所,世界不再是旧日模样");
									System.out.println("你是否会为了自己的梦想战斗,直至力战身亡,直至彼岸他乡 ");
									System.out.println("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ *");
									double change = 0;
									switch(choice3){
										case 1:
											System.out.println("\t\t英雄名称:纳尔   迷失之牙");
											System.out.println("\t\t英雄价格:3500");
											System.out.println("(温馨提示)请付款:");
											double money1 = input.nextDouble();
											change = money1 - (3500 * 0.95);
											break;
										case 2:
											System.out.println("\t\t英雄名称:锐雯   放逐之刃");
											System.out.println("\t\t英雄价格:4000");
											System.out.println("(温馨提示)请付款:");
											double money2 = input.nextDouble();
											change = money2 - (4000 * 0.95);
											break;
										case 3:
											System.out.println("\t\t英雄名称:薇恩   暗夜猎手");
											System.out.println("\t\t英雄价格:3500");
											System.out.println("(温馨提示)请付款:");
											double money3 = input.nextDouble();
											change = money3 - (3500 * 0.95);
											break;
										case 4:
											System.out.println("\t\t英雄名称:扎克   生化魔人");
											System.out.println("\t\t英雄价格:3000");
											System.out.println("(温馨提示)请付款:");
											double money4 = input.nextDouble();
											change = money4 - (3000 * 0.95);
											break;
										case 5:
											System.out.println("\t\t英雄名称:杰斯  未来守护者");
											System.out.println("\t\t英雄价格:2500");
											System.out.println("(温馨提示)请付款:");
											double money5 = input.nextDouble();
											change = money5 - (2500 * 0.95);
											break;
									}
									System.out.println("\t\t\t\t找零:" + change);
									break;
								case 2:
									System.out.println("\t\t\t\t进入休闲小游戏");
									break;
								case 3:
									break;
							}
							break;
						case 2 :
							System.out.print("请输入您的密码:");
							int password1 = input.nextInt();
							System.out.print("请再次输入您的密码:");
							int password2 = input.nextInt();
							if(password1 == password2){
								System.out.println("恭喜您,注册成功!!!");
							}else{
								System.out.print("\t\t两次输入的密码不一致!!!");
							}
							break;
						case 3:
							flag = false;
							System.out.print("系统退出,期待您的下一次使用");
							break;
					}
				}
	}
}

运行结果截图:

3. 请输入一个数,判断这个数是偶数还是奇数,
    如果使用偶数,请判断从1到该数是3的倍数有哪些
    如果是奇数,请判断从1到该数是5的倍数有哪些
        

//判断奇偶数
import java.util.Scanner;
public class exercise{
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个数:");
		int num = input.nextInt();
		//&运算符
		if ((num & 1) == 0){
			System.out.println("数" + num + "是偶数");
			for(int i = 1 ; i <= num ; i++){
				if((i % 3) == 0){
					System.out.println("从1到该偶数是3的倍数有" + i);
				}
			}
		}
		else{
			System.out.println("数" + num + "是奇数");
			for(int i = 1 ; i <= num ; i++){
				if((i % 5) == 0){
					System.out.println("从1到该偶数是5的倍数有" + i);
				}
		}
	}
}
}

运行结果:


    
4. 循环输入某同学S1结业考试的5门课成绩,并计算平均分

//判断奇偶数
import java.util.Scanner;
public class exercise{
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		double sum = 0;
		double average = 0;
		for(int i = 0 ; i < 5; i++) {
			System.out.print("请输入第" + (i+1) + "门考试成绩:");
			double score = input.nextDouble();
			sum += score;
		}
		average = sum / 5;
		System.out.println("同学S1结业考试的5门课成绩平均分为:" + average);
}
}

运行结果:

5. 请从控制台输入一个数,是质数(素数)还是合数
    提示:从2开始,只能被1和它本身除尽的数,是质数(素数)

import java.util.Scanner;
public class Work05{
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		System.out.print("请输入一个数:");
		int num = input.nextInt();
		boolean flag = true;
			for(int i = 2 ; i <= num / 2 ; i++){
				if(num % i == 0){
					flag = false;
					System.out.println("这个数是合数");
					break;
				}
			}
			if(flag){
				System.out.println("这个数是质数");
			}
	}
}

运行结果:

6. 求1~100之间不能被3整除的数之和

class Work06{
	public static void main(String[] args){
		int sum = 0;
		for(int i = 1 ; i <= 100 ; i++){
			if(i % 3 != 0){
				sum += i;
			}
		}
		System.out.print("1~100之间不能被3整除的数之和是:" + sum);
	}
}

运行结果:

7. 打印一个表格
    根据用户输入的数

    1    1*1    1*1*1
    2    2*2    2*2*2
    ....

    n    n平方    n立方

import java.util.Scanner;
class Work07{
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		System.out.print("请输入层数:");
		int layers = input.nextInt();
		for(int i = 1 ; i <= layers ; i++){
			System.out.println(i + "\t" + i + "*" + i + "\t" + i + "*" + i + "*" + i);
		}
	}
}

8. 请使用循环完成如下菱形图案的打印

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

import java.util.Scanner;
public class Test12{
	public static void main(String[] args){
		Scanner input = new Scanner(System.in);
		System.out.print("请输入您要打印的层数:");
		int layers = input.nextInt();
		if (layers > 0){
			for(int i = 1 ; i <= layers ; i++){
				for(int j = 1 ; j <= i ; j++){
					System.out.print("*");
				}
				System.out.println();
		}
		}else{
			System.out.println("您输入的数字不合规范");
		}
	}
}


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

import java.util.Scanner;
class Test14 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("请输入您要打印的层数:");
		int layers = input.nextInt();
		outputIsOscelesTriangle(layers);
	}

	public static void outputIsOscelesTriangle(int layers){
		//空格
		for(int i = 1 ; i <= layers ; i++){
			//计算空格数量
			int spaceNum = layers - i;
			for(int j = 1; j <= spaceNum; j++){
				System.out.print(" ");
			}
			//计算*数量
			int starNum = 2 * i - 1;//等差数列通项 an = a1 + (n - 1)d = 1 + (n - 1)2
			for (int j = 1 ; j <= starNum ; j++){
				System.out.print("*");
			}
			System.out.println();
	}
  }
}


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

import java.util.Scanner;
public class Test15 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("请输入您要打印的层数:");
		int layers = input.nextInt();
		outputIsOscelesTriangle(layers);
	}

	public static void outputIsOscelesTriangle(int layers){
		//空格
		for(int i = layers ; i >= 0 ; i--){
			//计算空格数量
			int spaceNum = layers - i;
			for(int j = 1; j <= spaceNum; j++){
				System.out.print(" ");
			}
			//计算*数量
			int starNum = 2 * i - 1;
			for (int j = 1 ; j <= starNum ; j++){
				System.out.print("*");
			}
			System.out.println();
	}
}
}

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

import java.util.Scanner;
class Work08 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("请输入您要打印的层数:");
		int layers = input.nextInt();
		printTree(layers);
	}

	public static void printTree(int layers){
		int layer = layers;
		//打印树枝
		for(int i = 1; i <= layer; i++){
			//空格数
			int spaceNum = layer - i;
			for(int j = 1; j <= spaceNum; j++){
				System.out.print(" ");
			}
			//*数
			int starNum = 2 * i - 1;
			for(int j = 1; j <= starNum; j++){
				System.out.print("*");
			}
			System.out.println();
		}
		//打印树干
		for(int i = 1; i <= layer; i++){
			//空格数
			int spaceNum = layer - 1;
			for(int j = 1; j <= spaceNum; j++){
				System.out.print(" ");
			}
			System.out.println("*");
		}
	}
}

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

在原有正三角和倒三角的基础上将两者拼接在一起,去掉重复的中间一行*即可

import java.util.Scanner;
class Work09 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("请输入您要打印的层数:");
		int layers = input.nextInt();
		outputIsOscelesTriangle(layers);
	}

	public static void outputIsOscelesTriangle(int layers){
		//正三角
		for(int i = 1 ; i <= layers ; i++){
			//计算空格数量
			int spaceNum = layers - i;
			for(int j = 1; j <= spaceNum; j++){
				System.out.print(" ");
			}
			//计算*数量
			int starNum = 2 * i - 1;//等差数列通项 an = a1 + (n - 1)d = 1 + (n - 1)2
			for (int j = 1 ; j <= starNum ; j++){
				System.out.print("*");
			}
			System.out.println();
	}
	//倒三角
		for(int i = layers - 1 ; i >= 0 ; i--){
			//计算空格数量
			int spaceNum = layers - i;
			for(int j = 1; j <= spaceNum; j++){
				System.out.print(" ");
			}
			//计算*数量
			int starNum = 2 * i - 1;
			for (int j = 1 ; j <= starNum ; j++){
				System.out.print("*");
			}
			System.out.println();
	}
  }
}


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

import java.util.Scanner;
class Work10 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("请输入您要打印的层数:");
		int layers = input.nextInt();
		outputIsOscelesTriangle(layers);
	}

	public static void outputIsOscelesTriangle(int layers){
		//正三角
		for(int i = 1 ; i <= layers ; i++){
			//计算空格数量
			int spaceNum = layers - i;
			for(int j = 1; j <= spaceNum; j++){
				System.out.print(" ");
			}
			//计算*数量
			int starNum = 2 * i - 1;//等差数列通项 an = a1 + (n - 1)d = 1 + (n - 1)2
			for (int j = 1 ; j <= starNum ; j++){
				if(j == 1 || j == starNum){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
	}
	//倒三角
		for(int i = layers - 1 ; i >= 0 ; i--){
			//计算空格数量
			int spaceNum = layers - i;
			for(int j = 1; j <= spaceNum; j++){
				System.out.print(" ");
			}
			//计算*数量
			int starNum = 2 * i - 1;
			for (int j = 1 ; j <= starNum ; j++){
				if(j == 1 || j == starNum){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
	}
  }
}


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

import java.util.Scanner;
class Work11 {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.print("请输入您要打印的层数:");
		int layers = input.nextInt();
		outputIsOscelesTriangle(layers);
	}

	public static void outputIsOscelesTriangle(int layers){
		//正三角
		for(int i = 1 ; i < layers ; i++){
			//计算空格数量
			int spaceNum = layers - i;
			for(int j = 1; j <= spaceNum; j++){
				System.out.print(" ");
			}
			//计算*数量
			int starNum = 2 * i - 1;//等差数列通项 an = a1 + (n - 1)d = 1 + (n - 1)2
			for (int j = 1 ; j <= starNum ; j++){
				if(j == 1 || j == starNum || j == (starNum / 2) + 1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
	}
	//中间一行
		for(int j = 1; j <= 2 * layers - 1; j++){
			System.out.print("*");
		}
		System.out.println();
	//倒三角
		for(int i = layers - 1 ; i >= 0 ; i--){
			//计算空格数量
			int spaceNum = layers - i;
			for(int j = 1; j <= spaceNum; j++){
				System.out.print(" ");
			}
			//计算*数量
			int starNum = 2 * i - 1;
			for (int j = 1 ; j <= starNum ; j++){
				if(j == 1 || j == starNum || j == (starNum / 2) + 1){
					System.out.print("*");
				}else{
					System.out.print(" ");
				}
			}
			System.out.println();
	}
  }
}


9. 请在控制台上输入两个数,并且输入一个符号(+-*/%),使用switch语句

import java.util.Scanner;
class Work13 {
	public static void main(String[] args) {
		System.out.print("请输入两个数,并且输入一个符号(+-*/%):");
		Scanner input =new Scanner(System.in);
		double num1 = input.nextDouble();
		double num2 = input.nextDouble();
		String sign = input.next();
		double result = calculation(num1, num2, sign);
		System.out.print(num1 + sign + num2 + "=" + result);
	}

	public static double calculation(double num1, double num2, String sign){
		double a = num1;
		double b = num2;
		String s = sign;
		double result =0;
		switch(sign){
			case "+":
				result = a + b;
				break;
			case "-":
				result = a - b;
				break;
			case "*":
				result = a * b;
				break;
			case "/":
				result = a / b;
				break;
			case "%":
				result = a % b;
				break;
		}
		return result;
	}
}

运行结果:

10. 请输出100~1000范围内,能被5和6整除的数

class Work14 {
	public static void main(String[] args) {
		System.out.println("输出100~1000范围内,能被5和6整除的数");
		int leftBound = 100;
		int rightBound = 1000;
		print(leftBound, rightBound);
	}

	public static void print(int num1, int num2){
		int leftBound = num1;
		int rightBound = num2;
		for(int i = leftBound; i <= rightBound; i++){
			if(i % 30 == 0){
				System.out.println(i);
			}
		}
	}
}

运行结果:

 11. 输入一个年份,判断该年是否是闰年

import java.util.Scanner;
class Work15 {
	public static void main(String[] args) {
		System.out.print("输入一个年份,判断该年是否是闰年:");
		Scanner input =new Scanner(System.in);
		int year = input.nextInt();
		boolean result = judgeLeapYear(year);
		if(result){
			System.out.println(year + "是闰年");
		}else{
			System.out.println(year + "不是闰年");
		}
	}
   //年号能被4整除且不能被100整除,或者能被400整除的为闰年。
	public static boolean judgeLeapYear(int year){
		if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0){
			return true;
		}
		return false;
	}
}

运行结果:

12.  健康计划
    用户输入身高(m),体重(kg)
    计算公式:BMI =体重 /( 身高^2)
    BMI < 18.5:过轻
    18.5≤ BMI <24:正常
    24 ≤ BMI <27:过重
    27 ≤ BMI < 30:轻度肥胖
    30 ≤ BMI < 35:中度肥胖
    BMI ≥ 35:重度肥胖

import java.util.Scanner;
class Work16 {
	public static void main(String[] args) {
		System.out.print("请输入您的身高(m),体重(kg),将为您计算BMI:");
		Scanner input =new Scanner(System.in);
		double height = input.nextDouble();
		double weight = input.nextDouble();
		printHealthy(height, weight);
	}
   //年号能被4整除且不能被100整除,或者能被400整除的为闰年。
	public static void printHealthy(double a, double b){
		double height = a;
		double weight = b;
		double bmi = weight / (height * height);
		if(bmi < 18.5){
			System.out.println("过轻");
		}else if(bmi < 24){
			System.out.println("正常");
		}else if (bmi < 27){
			System.out.println("过重");
		}else if(bmi < 30){
			System.out.println("轻度肥胖");
		}else if(bmi < 35){
			System.out.println("中度肥胖");
		}else{
			System.out.println("重度肥胖");
		}
	}
}

运行结果:


13. 一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是几?

class Work17 {
	public static void main(String[] args) {
		System.out.print("一个自然数与3的和是5的倍数,与3的差是6的倍数,这个自然数最小是:");
		int minResult = printNum();
		System.out.println(minResult);
	}
	public static int printNum(){
		int result = 0;
		for (int i = 9; i < 100; i++ ){
			if(((i + 3) % 5 == 0) && ((i - 3) % 6 == 0)){
				result = i;
				break;
			}
		}
		return result;
	}
}

运行结果:

14. 在400--500之间求一个数,它被2除余1,被5除余3,被9除余1,这个数是多少?

class Work18 {
	public static void main(String[] args) {
		System.out.print("在400--500之间求一个数,它被2除余1,被5除余3,被9除余1,这个数是:");
		int result = printNum();
		System.out.println(result);
	}
	public static int printNum(){
		int result = 0;
		for (int i = 400; i <= 500; i++ ){
			if((i % 2 == 1) && (i % 5 == 3) && (i % 9 == 1)){
				result = i;
				break;
			}
		}
		return result;
	}
}

运行结果:

15. 有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是几?

class Work19 {
	public static void main(String[] args) {
		System.out.print("有一些四位数,百位数字都是3,十位数字都是6,并且它们既能被2整除,又能被3整除,求这样的四位数中最大的和最小的两数各是:");
		printNum();
	}

	public static void printNum(){
		int minResult = 0;
		int maxResult = 0;
		for (int i = 1000; i <= 9998; i = i + 2 ){
			int hundth = i / 100 % 10;//百位
			int tenth = i % 100 / 10;//十位
			if(hundth == 3 && tenth == 6 && (i % 2 == 0) && (i % 3 == 0)){
				minResult = i;
				break;
			}
		}
		System.out.println("最小数是:" + minResult);
		for (int i = 9998; i >= 1000; i = i - 2 ){
			int hundth = i / 100 % 10;//百位
			int tenth = i % 100 / 10;//十位
			if(hundth == 3 && tenth == 6 && (i % 2 == 0) && (i % 3 == 0)){
				maxResult = i;
				break;
			}
		}
		System.out.println("最小数是:" + maxResult);
	}
}

运行结果:


16. 编程求一个四位自然数ABCD,它乘以A后变成DCBA

class Work20 {
	public static void main(String[] args) {
		System.out.print("编程求一个四位自然数ABCD,它乘以A后变成DCBA:");
		printNum();
		}

	public static void printNum(){
		int result = 0;
		for (int i = 1001; i <= 9999; i = i + 2 ){
			int thousand = i / 1000;//千位
			int hundth = i / 100 % 10;//百位
			int tenth = i % 100 / 10;//十位
			int gewei = i % 1000;//个位
			int changeNum = gewei * 1000 + tenth * 100 + hundth *10 + thousand;
			if(i * thousand == changeNum){
				result = i;
				System.out.println(result);
			}
		}
	}
}

运行结果:

17. 编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和.

class Work21 {
	public static void main(String[] args) {
		System.out.println("编程求出满足以下条件的三位数:它除以11所得的商等于它各位数字之和:");
		printNum();
		}

	public static void printNum(){
		int result = 0;
		for (int i = 100; i <= 999; i++ ){
			int hundth = i / 100;//百位
			int tenth = i % 10 / 10;//十位
			int gewei = i % 100;//个位
			int sum = gewei + tenth + hundth;
			if((i / 11) == sum){
				result = i;
				System.out.println(result);
			}
		}
	}
}

运行结果:

18. 某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这 个自然数.

class Work22 {
	public static void main(String[] args) {
		System.out.println("某数被80除所得的商,不但是7的倍数,而且用2,3,4,5,6去除余数都是1,求这个自然数");
		printNum();
		}

	public static void printNum(){
		int result = 0;
		for (int i = 0; i <= 99999; i++ ){
			int shang = i / 80;
			if((shang % 7 == 0) && (shang % 2 == 1) && (shang % 3 == 1) && (shang % 4 == 1) && (shang % 5 == 1) && (shang % 6 == 1)){
				result = i;
				System.out.println(result);
			}
		}
	}
}

运行结果:

19. 有一种最简真分数,它们的分子与分母的乘积都是140,把所有这样的真分数从小到大打印出来

20. 一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数.

class Work24{
	public static void main(String[] args) {
		System.out.print("一个五位数,若在它的后面写上一个7,得到一个六位数A,若在它前面写上一个7,得到一个六位数B,B是A的五倍,求此五位数:");
		printNum();
		}

	public static void printNum(){
		int result = 0;
		for (int i = 10000; i <= 99999; i = i + 1 ){
			int million = i / 10000;//万位
			int thousand = i / 1000 % 10;//千位
			int hundth = i / 100 % 10;//百位
			int tenth = i % 100 / 10;//十位
			int gewei = i % 10;//个位
			int changeNum1 =7 + gewei * 10 + tenth * 100 + hundth *1000 + thousand * 10000 + million * 100000;
			int changeNum2 = i + 700000;
			if(5 * changeNum1 == changeNum2){
				result = i;
				System.out.println(result);
			}
		}
	}
}

运行结果:

 

21. 把123456789这个数乘以一个什么数,能使它的结果不但不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,只是顺序不同而已.

class Work25{
	public static void main(String[] args) {
		System.out.println("把123456789这个数乘以一个什么数,能使它的结果不但不含零,而且仍然是 由1,2,3,4,5,6,7,8,9这九个数字组成的,只是顺序不同而已");
		int num = 123456789;
		for(int i = 2; i < 10; i++){
			int num1 = num * i;
			String s = num + "";
			if(!(s.contains("0")) && judgeNum(num1) == judgeNum(num)){
				System.out.println(num1);
			}
		}
		}

	public static int judgeNum(int num1){
		int num = num1;
		if(num <= 9){
			return num;
		}else{
			return num % 10 + judgeNum(num / 10);
		}
	}
}

运行结果:

 

22. 验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.

class Work26 {
	public static void main(String[] args) {
		System.out.println("验证:任意一个大于9的整数减去它的各位数字之和所得的差,一定能被9整除.");
		boolean result = prove();
		if (result){
			System.out.println("成立!!!");
		}else{
			System.out.println("错误!!!");
		}
		}

	public static boolean prove(){
		boolean flag = true;
		for (int i = 10; i <= 9999; i = i + 2 ){
			int thousand = i / 1000;//千位
			int hundth = i / 100 % 10;//百位
			int tenth = i % 100 / 10;//十位
			int gewei = i % 10;//个位
			int sub = i - (gewei + tenth + hundth + thousand);
			if(sub % 9 != 0){
				flag = false;
				break;
			}
		}
		return flag;
	}
}

运行结果:

23. 如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".

24. 求水仙花数。
        ABC  = a^3+b^3+c^3

class Work28 {
	public static void main(String[] args) {
		System.out.println("求水仙花数。(ABC ?= a^3+b^3+c^3)");
		daffodil();//水仙花
		}

	public static void daffodil(){
		for (int i = 100; i <= 999; i++ ){
			double sum = 0;
			int hundth = i / 100;//百位
			int tenth = i / 10 % 10;//十位
			int gewei = i % 10;//个位
			//sum = Math.pow(gewei, 3) + Math.pow(tenth, 3) + Math.pow(hundth, 3);
			sum = hundth * hundth * hundth + tenth * tenth * tenth + gewei * gewei * gewei;
			if(i == sum){
				System.out.println(i);
			}
		}
	}
}

运行结果:

 

25. 求  a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定。

import java.util.Scanner;
class Work29 {
	public static void main(String[] args) {
		System.out.println("求  a+aa+aaa+.......+aaaaaaaaa=?其中a为1至9之中的一个数,项数也要可以指定");
		Scanner input =new Scanner(System.in);
		int num = input.nextInt();//数字
		int digit = input.nextInt();//项数
		int sum = sumNum(num, digit);
		System.out.println(sum);
	}
  
	public static int sumNum(int num1, int digit1){
		int num = num1;
		int digit = digit1;
		int num2 = 0;
		if(digit == 1){
			return num;
		}else{
			for(int i = digit - 1 ; i >= 0 ; i--){
				num2 += num * Math.pow(10 , i);
			}
			digit--;
			return num2 + sumNum(num , digit);
		}
	}
}

运行结果:

 26. 求 2/1+3/2+5/3+8/5+13/8.....前20项之和?

方法一:for循环

class Work30 {
	public static void main(String[] args) {
		System.out.println("求 2/1+3/2+5/3+8/5+13/8.....前20项之和");
		int digit = 20;
		double sum = sumNum(digit);
		System.out.println(sum);
	}
  
	public static double sumNum(int digit){
		double a = 1;
		double b = 2;
		double sum = 2 / 1;
		for(int i = 2; i <= digit; i++){
			double c = a + b;
			a = b;
			b = c;
			sum += b / a;
		}
		return sum;
	}
}

方法二:递归

import java.util.Scanner;
class Work30 {
	public static void main(String[] args) {
		System.out.println("求 2/1+3/2+5/3+8/5+13/8.....前20项之和");
	    Scanner input= new Scanner(System.in);
        System.out.print("请输入项数:");
        int digit = input.nextInt();
		double sum = 0;
		for(int i = 1; i <= digit; i++){
			sum += (fib(i + 1) / fib(i));
		}
		System.out.println(sum);
	}
  
	public static double fib(int i){
		if(i == 1 || i == 2){
			return i;
		}else{
			return fib(i - 1) + fib(i - 2);
		}
	}
}

运行结果:

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值