Java思思 everyday [练习版]

第一题:金字塔升级版 输出菱形~~

import java.util.Scanner;
public class Diamond{
	public static void main(String[] args) {
	System.out.print("输入菱形的层数:");
	Scanner myScanner = new Scanner(System.in);
	int layers = myScanner.nextInt();
	int layersUp = layers / 2 + 2;
	int layersDown = layers / 2 + 1;
	for (int i = 1; i < layersUp; i++) {
		for (int k = 1; k < layersUp - i;k++ ) {
			System.out.print(" ");
		}
		for (int j = 0; j < (2 * i - 1); j++) {
			System.out.print("*");
		}
		System.out.print("\n");
	}
	int count = 0;
	for (int i = layersDown; i >= 0 ;i-- ) {
		count++;
		for (int k = 1;k <= count ;k++ ) {
			System.out.print(" ");
		}
		for (int j = 1;j <= (2 * i - 3) ;j++ ) {
			System.out.print("*");
		}
		System.out.print("\n");
	}
	}
}

第二题:实现登录验证,有3次机会,如果用户名为“丁真”,密码“666”提示登录成功,否则提示还有几次机会,请使用for+break完成

import java.util.Scanner;
//实现登录验证,有3次机会,如果用户名为“丁真”,密码“666”提示登录成功,否则提示还有几次机会,请使用for+break完成
public class D4{
	public static void main(String[] args) {
		
		Scanner myScanner = new Scanner(System.in);
		int times = 0; // 次数
			for (times = 1;times <= 3 ;times++ ) {
			System.out.println("请输入用户名:");
			String name = myScanner.next();

			if ( "丁真".equals(name)) {
			System.out.println("请输入密码:");
			 
				String password = myScanner.next();
				if ("666".equals(password)) {
					System.out.println("恭喜,登录成功!");
					break;
				}else{
					System.out.println("抱歉,密码错误,登录失败!");
					System.out.println("您还有" + (3 - times) + "次机会");
				

				}
			}
		}
	}
}

第三题:

当某人有100000元,每次经过路口,需要交费,规则如下:

1、当现金 大于 500000时,每次交 5%

2、当现金 小于或等于 50000时,每次交1000

编程计算该人可以经过多少次路口,

要求使用 while break 方式完成

public class D5{
	public static void main(String[] args) {
				
		// 当某人有100000元,每次经过路口,需要交费,规则如下:
		// 1、当现金 大于 500000时,每次交 5%
		// 2、当现金 小于或等于 50000时,每次交1000
		// 编程计算该人可以经过多少次路口,
		// 要求使用 while break 方式完成

		/*
		第一步 设置一个变量 存放 100000元 
		第二步 设置一个 while 循环 判断条件为 50000
		*/
		double cash = 100000;
		double money = 0;
		double cashMoney = 0;
		int times = 0;
		while( cash > 50000){
			money = cash * 0.05;
			cash = cash - money;
			times++;
			// System.out.println("余额大于50000时:" + cash + "\t" + times);
		}
		System.out.println("余额大于50000时:" + cash + "\t" + times);
		double numMoney = cash;
		int timesTwo = times;
			// System.out.println("标记" + numMoney + "\t" + timesTwo);

		
		while( numMoney >= 0){
			numMoney = numMoney - 1000;
			// cash = cash - money;
			timesTwo++;
			if (numMoney <= 1000) {
			System.out.println("余额小于等于 50000时:" + numMoney + " " + timesTwo);
			break;	
			}
			// System.out.println("余额小于等于 50000时:" + numMoney + " " + timesTwo);

		}
			// System.out.println("余额小于等于 50000时:" + numMoney + "\t" + timesTwo );

	}
}

第四题:实现判断一个整数,属于哪个范围

import java.util.Scanner;
// 实现判断一个整数,属于哪个范围
// 大于零、小于零、等于零

public class D6{
	public static void main(String[] args) {
		// 从键盘输入整数
		// 用if来判断 大于零、小于零、等于零
		Scanner myScanner = new Scanner(System.in);
		System.out.println("从键盘输入一个整数:");
		int num = myScanner.nextInt();

	if (num > 0) {
		System.out.println("从键盘输入的整数大于零");
	}else if (num == 0) {
		System.out.println("从键盘输入的整数等于零");
		
	}else if (num < 0) {
		System.out.println("从键盘输入的整数小于零");
		
	}
	}
}

第五题:判断一个年份是否是闰年

import java.util.Scanner;
public class D7{
	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
		int year = myScanner.nextInt();
		if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) {
			System.out.println( year + "年为闰年!" );
		}else{
		System.out.println(year + "不是闰年!");

		}
	}
}

第六题:判断一个整数是否为水仙花数,所谓水仙花数是指一个三位数,其各个位置上的数字立方和等于其本身。例如:153

import java.util.Scanner;
// 判断一个整数是否为水仙花数,所谓水仙花数是指一个三位数,其各个位置上的数字立方和等于其本身。例如:153

public class D8{
	public static void main(String[] args) {
		System.out.println("请输入一个三位数的整数:");
		Scanner myScanner = new Scanner(System.in);
		int num = myScanner.nextInt();
		int add1 = num % 10; //个位数
		int add2 = num % 100 / 10; //十位
		int add3 = num / 100; //百位
		int sum = 0; //设置总和
		if (num == add1 * add1 * add1 + add2 * add2 * add2 + add3 * add3 * add3) {
			System.out.println(num + "是水仙花数!!!");
		}else {
			System.out.println(num + "不是水仙花数!!!");
		}
	}
}
水仙花升级版
import java.util.Scanner;

public class D9{
	public static void main(String[] args) {
		int i = 0; //设置循环的次数  并且输出循环的数
		Scanner myScanner = new Scanner(System.in);
		System.out.println("输入最高范围:");
		int layerMax = myScanner.nextInt(); //设置最高范围
		System.out.println("输入最低范围:");
		int layermin = myScanner.nextInt();	//设置最低范围
		for (i = layermin;i <= layerMax ;i++ ) {
			int num1 = i % 10;
			int num2 = i % 100 / 10;
			int num3 = i / 100;
			if (i == num1 * num1 * num1 + num2 * num2 * num2 + num3 * num3 * num3) {
				System.out.println("水仙花数为:" + i);
			}
		}
	}
}

第七题:输出1 - 100之间不能被5整除的数 每5个一行

public class D11{
	public static void main(String[] args) {
		int i = 0;
		int count = 0;
		for (i = 1;i <= 100 ;i++ ) {
			
			if (i % 5 != 0) {
				count++;
				System.out.print(i + "\t");	
				if (count % 5 ==0) {
				System.out.println();
		}
			}

			}
		
	}
}

第八题:求出小写的a - z 以及大写的Z - A 

public class D12{
	public static void main(String[] args) {
		// 求出小写的a - z 以及大写的Z - A 
		//ASii 中对应 a 为 97 则 z 为 122
		// A 为 97 - 32 = 65  ||  Z 为 90
		char num = 'a';
		int count = 0;
		for (num = 97;num <= 122 ;num++ ) {
			System.out.print(num + " ");
		}
		System.out.print("\n");
		for (num = 90;num >= 65 ;num-- ) {
			System.out.print(num + " ");
		}

		
	}
}

第九题:求出 1/1 - 1/2 + 1/3 …… + 1/100的和

// 求出 1/1 - 1/2 + 1/3 …… + 1/100的和

public class D13{
	public static void main(String[] args) {
		// 第一步 编写一个for语句 从 1 - 100
		//
		double numUp = 1;
		double numDown = 1;
		double sum = 0;
		int count = (-1);
		int times = 1;
		// double numAll = numUp / numDown;

		for (numDown = 1;numDown <= 100 ;numDown++ ) {
			times++;
			double numAll = numUp / numDown;
			double numSize = Math.pow(count,times);
			sum = sum + numAll * numSize;
			//System.out.println(sum);
		}
			System.out.println(sum);

	}
}

第十题:求1 + (1 + 2) + (1 + 2 + 3) +(1 + 2 + 3 +4) …… +(1 + 2 + 3 + 4 + ... + 100)

// 求1 + (1 + 2) + (1 + 2 + 3) + (1 + 2 + 3 +4) …… + (1 + 2 + 3 + 4 + ... + 100)
public  class D14{
	public static void main(String[] args) {
		//先求出 1 的和
		// 在求出 1 + 2的和
		int i = 0;
		int sum = 0;
		int all = 0;
		for (i = 1; i <= 100;i++ ) {
			sum = sum + i;
			all = all + sum;
			System.out.print(all+ "\n");
		}
	}
}

第十一题:创建一个char类型的26个元素的数组,分别放置‘A’ - ‘Z’。使用for循环访问所有元素并打印出来。

//创建一个char类型的26个元素的数组,分别放置‘A’ - ‘Z’。使用for循环访问所有元素并打印出来。
public class c1{
	public static void main(String[] args) {
		char[] eng;
		eng = new char[26];
		for (char sum = 'A'; sum <= 'Z'; sum++) {
			System.out.print("输出英文字母" + sum + "\n");
		}
	}
}

第十二题:

求出一个数组 int []的最大值 {4,-1,9,10,23},并得到对应的下标

实现动态的给数组添加元素效果,实现对数组的扩容

原始数据使用静态分配 int arr[] = {1,2,3}

增加的元素4,直接放在数组的最后 arr = {1,2,3,4}

用户可以通过如下方法来决定是否继续添加,添加成功,是否继续y/n

import java.util.Scanner; 	
// 实现动态的给数组添加元素效果,实现对数组的扩容

// 原始数据使用静态分配 int arr[] = {1,2,3}

// 增加的元素4,直接放在数组的最后 arr = {1,2,3,4}

// 用户可以通过如下方法来决定是否继续添加,添加成功,是否继续y/n
public class c8{
	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
	int arr[] = {1,2,3};	
	do{
		int arrNew[] = new int[arr.length + 1];				//第二步 在jvm中的堆里创造 新的空间 
	for(int i = 0;i < arr.length ;i++ ) {				//第三步 进行拷贝 复制	
		arrNew[i] = arr[i];
	}
	System.out.print("输入新元素:");
	int arrSize = myScanner.nextInt();
	arrNew[arrNew.length - 1] = arrSize;						//设置要插入的值
	arr = arrNew;										//将新创建好的空间地址 指向 之前声明的地址
	for(int i = 0;i < arrNew.length;i++){				//遍历输出
	System.out.print(arrNew[i] + " ");
	}
	System.out.print("添加成功,是否继续添加:y/n" + "\t");
	char change = myScanner.next().charAt(0);
	if (change == 'n') {
		break;
	}
}while(true);
System.out.print("结束交易!!");							
		}

}

第十三题:有一个数组{1,2,3,4,5},可以将该数组进行缩减,提示用户是否继续缩减,每次缩减最后哪个元素。当只剩下最后一个元素,提示,不能再缩减了。

import java.util.Scanner;
// 有一个数组{1,2,3,4,5},可以将该数组进行缩减,提示用户是否继续缩减,每次缩减最后哪个元素。当只剩下最后一个元素,提示,不能再缩减了。
public class c1{
	public static void main(String[] args) {
		int arr[] = {1,2,3,4,5};
		int count = 0;
		Scanner myScanner = new Scanner(System.in);
		do{
			count++;
			int arrNew[] = new int[arr.length - count];
			for (int i = 0; i < arrNew.length;i++ ) {
				arrNew[i] = arr[i];
			System.out.print(arrNew[i]);
				
		}
		System.out.print("用户是否继续缩减 y/n: \t");
		char change = myScanner.next().charAt(0);

		if (arrNew.length == 1 ) {
			System.out.print("只剩下最后一个元素,不能再缩减了!\n" );
			break;
		}else if(change == 'n'){
			System.out.print("已退出程序!");
			break;
		}
		}while(true);
		

			
		}
	}

第十四题:冒泡排序

public class c2{
	public static void main(String[] args) {
		int arr[] = {41,15,32,17,71,1};
		int temp = 0;
		int count = 0;
		for (int j = arr.length - 1;j >= 0 ;j-- ) {
			for (int i = 0; i < arr.length - 1;i++ ) {
			if (arr[i] > arr[i + 1]) {
				temp = arr[i];
				arr[i] = arr[i + 1];
				arr[i + 1] = temp;
			}
	
		}

		for (int i = 0; i < arr.length;i++ ) {

			System.out.print(arr[i] + "\t");
		}
		count++;
	System.out.println("==========第" + count + "轮");
		}
		
		}
}

冒泡排序升级版:

import java.util.Scanner;
public class c3{
	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
		System.out.print("输入空间的大小: ");
		int room = myScanner.nextInt();

		int arr[] = new int[room + 1];
		
		for (int b = 0; b < room;b++ ) {
		System.out.println("输入排序的第" + (b + 1) +"位:");
			int num = myScanner.nextInt();
			arr[b] = num;
		}

		int temp = 0;
		int count = 0;
		for (int m = arr.length - 3;m >= 0;m-- ) {
			for (int i = 0; i < arr.length - 1;i++ ) {
			if (arr[i] < arr[i + 1]) {
					temp = arr[i];
					arr[i] = arr[i + 1];
					arr[i + 1] = temp;
				}	
		}
		count++;
				System.out.print("第" + count + "轮:");

		for (int j = 0;j < arr.length - 1 ;j++ ) {
				System.out.print(arr[j] + " ");
		}
		System.out.print("\n");
		}
		
	}
}

第十五题:有一个数列:白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王猜数游戏:从键盘中任意输入一个名称,判断数列中是否包含此名称。要求:如果找到了,就提示找到了,并给出下标值。

import java.util.Scanner;
// 有一个数列:
// 白眉鹰王、金毛狮王、紫衫龙王、青翼蝠王猜数游戏
// :从键盘中任意输入一个名称,判断数列中是否包含此名称。
// 要求:如果找到了,就提示找到了,并给出下标值。

public class c4{
	public static void main(String[] args) {
		Scanner myScanner = new Scanner(System.in);
		String sum[] = {"白眉鹰王","金毛狮王","紫衫龙王","青翼蝠王"};

		String people = myScanner.next();
		for (int i = 0; i < sum.length;i++ ) {
			if (people.equals(sum[i])) {
				System.out.print("找到了! 在" + (i + 1) + "位置上");	
						System.out.println(sum[i]); 	
			}
			// System.out.println(sum[i]);
		}
	}
}

第十六题:动态创建二维数组,并输出

public class c5{
	public static void main(String[] args) {
		int arr[][] = new int[9][];
		for (int i = 0; i < arr.length; i++) {
			arr[i] = new int[i + 1];
			for (int j = 0;j < arr[i].length ;j++ ) {
				arr[i][j] = i + 1;
			}
		}
		for (int i = 0; i < arr.length;i++ ) {
			for (int j = 0; j < arr[i].length;j++ ) {
				System.out.print(arr[i][j] + " ");
			}
			System.out.print("\n");
		}
	}
}

第十七题:遍历二维数组并求和

public class c6{
	public static void main(String[] args) {
		int arr[][]={{4,6},{1,4,5,7},{-2}};
		for (int i = 0; i < arr.length;i++ ) {
			for (int j = 0;j < arr[i].length;j++ ) {
				System.out.print(arr[i][j] + " ");		
			}
			System.out.print("\n");   
		}
	}
}

第十八题:打印十行杨辉三角

public class c7{
	public static void main(String[] args) {
		int arr[][] =new int[11][];
		for (int i = 0; i < arr.length;i++ ) {
			arr[i] = new int[i + 1];
			for (int j = 0;j < arr[i].length ;j++ ) {
				if (j == 0 || j == arr[i].length - 1) {
					arr[i][j] = 1;
				}else{
					arr[i][j] = arr[i - 1][j] + arr[i - 1][j - 1]; 
				}
			}
		}
		for (int i = 0;i < arr.length ;i++ ) {
			for (int j = 0;j < arr[i].length ;j++ ) {
				System.out.print(arr[i][j] + " ");
			}
			System.out.print("\n");
		}
	}
}

第十九题:在数组中插入元素

public class c1{
	public static void main(String[] args) {
		int arr[] = {10,12,45,90};	//4
		int change = 23;
		int index = -1;
		for (int i = 0; i < arr.length;i++ ) {
			if (change < arr[i]) {
				index = i;
				break;
			}else{
				index = arr.length;
			}
		}
			System.out.print(index + "\t");
			System.out.print("\n");
			int arrNew[] = new int [arr.length + 1];	//5
			
			for (int j = 0; j < arrNew.length - 1;j++ ) { //5
				arrNew[j] = arr[j];
				System.out.print(arrNew[j] + " ");
			}
			System.out.print("==========\n");
				arr = arrNew;
				 System.out.print(arrNew.length + " size\n");
			for(int z = arrNew.length - 1;z > index;z--){
				arrNew[z] = arrNew[z - 1];
			}
			System.out.print("\n");

		
			arrNew[index] = change;
			for (int x = 0; x < arrNew.length;x++ ) {
				System.out.print(arrNew[x] + " ");
			}
	}
}

第二十题:随机生成数放入到数组中

public class c2{
	public static void main(String[] args) {
		int[] arr = new int[10];
		System.out.println("随机生成十个数:\n");
		for (int i = 0; i < arr.length; i++) {
			arr[i] = (int)(Math.random() * 100) + 1;
			System.out.print(arr[i] + "\t");
		}
		System.out.print("\n");
		System.out.print("倒序输出十个数:\n");
		for (int j = arr.length - 1;j >= 0 ;j-- ) {
			System.out.print(arr[j] + "\t");
		}
		int Max = arr[0];
		int arrSize = 0;
		for (int x = 1; x < arr.length - 1;x++ ) {
			if (Max < arr[x]) {
				Max = arr[x];
				arrSize = x;
			}
		}
		System.out.print("\n");
		System.out.println("Max= " + Max + "\nMaxIndex = " + arrSize +"\n");

		double sum = 0;
		double avg = 0;
		for (int z = 0;z < arr.length ;z++ ) {
			sum += arr[z];
		}
		avg = sum / arr.length;
		System.out.print("Sum= " + sum + "Avg=" + avg);
	}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值