第一题:金字塔升级版 输出菱形~~
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);
}
}