字符串的应用

这篇博客包含了多个编程挑战,包括根据用户输入的行数输出杨辉三角,计算特定数字组合的三位数,求解斐波那契数列的前20项和,判断三角形类型,以及打印X形图案。每个挑战都提供了详细的代码实现,涵盖了基础算法和数据结构的应用。
摘要由CSDN通过智能技术生成

输出杨辉三角形,并根据键盘录入的行数,决定杨辉三角的行数。

package com.java;

import java.util.Scanner;

public class 杨辉三角 {
// 输入任意行数,打印对应行数的杨辉三角
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入行数:");
		int k = 0;
		while (true) { // 判断输入的数据是否合法
			k = sc.nextInt();
			if (k <= 0 || k > Integer.MAX_VALUE) {
				System.out.println("输入的数据不合法!");
			} else {
				break;
			}
		}
		for (int i = 1; i <= k; i++) {
			for (int m = 1; m <= k - i; m++) {// 每一行前的空格数
				System.out.print(" ");
			}
			for (int m = 1; m <= 2 * i - 1; m++) { // 每一行的 * 数
				System.out.print("*");
			}
			System.out.println();
		}
		sc.close();
	}
}

 有1234一共四个数字,能组成多少个不相等且无重复数字的三位数?都是多少?

注:可填在百位、十位、个位的数字都是1234。组成所有的排列后再去掉不满足条件的就可以了。

利用for循环将所有符合条件的数进行打印输出

package com.java;

public class Test {
	public static void main(String[] args) {
		// 1 2 3 4 组成的三位数,无重复
		int cc = 0; // 计数
		String ss = "";
		int sum = 0;// 求和
		for (int i = 1; i <= 4; i++) {
			for (int j = 1; j <= 4; j++) {
				for (int k = 1; k <= 4; k++) {
					if (i != j && i != k && j != k) {
						System.out.print(i + "" + j + "" + k + "\t");// 输出每一个符合要求的数字
						ss += (i + "" + j + "" + k + "+"); // 将输出的所有数字累积其来放在ss字符串中
						sum += (i * 100 + j * 10 + k); // 将输出的数字进行累加
						cc++; // 符合要求数的个数
						if (cc % 3 == 0) { // 以3列为一行
							System.out.println();
						}
					}
				}
			}
		}
		ss = ss.substring(0, ss.length() - 1) + "=" + sum;// 去除最后一个数后面的加号,且将最终累加的值放在最后
		System.out.println(ss); // 打印ss中的内容
		System.out.println("一共有:" + cc + "个数字");// 打印一共有多少个数字
	}
}

 有一分数序列:2/13/25/38/513/821/13。求出这个数列的前20项之和。

注:提前告诉答案是32.66026079864164 ​​​​​​​

package com.java;

import java.util.Scanner;

public class Test {
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入需要一个正整数:");
		int a=sc.nextInt();
		String ss="";
		ss=a+"";
		String aa="";
		for(int c=ss.length()-1;c>=0;c--) {
			aa+=ss.charAt(c);
		}
		System.out.println(a+"的逆序是:"+aa);
		System.out.println(a+"的长度是"+ss.length());
		sc.close();
	}
}

提示用户输入三角形的边abc,范围必须在 [1,100) 之间,判断三角形的类型:1.非三角形;2. 等边三角形;3.直角三角形;4.等腰三角形;5.普通三角形

package com.java;

import java.util.Scanner;

public class Test {
//判断三角形
	public static void main(String[] args) {
		int a=0,b=0,c=0;
		 Scanner sc=new Scanner(System.in);
		 System.out.println("请输入第一个边长:");
		 while(true) {
			  a=sc.nextInt();
			 if(a>=0&&a<100) {
				 break;
			 }
			 else {
				 System.out.println("输入的数据不合法");
			 }
		 }
		 System.out.println("请输入第二个边长:");
		 while(true) {
			  b=sc.nextInt();
			 if(b>=0&&b<100) {
				 break;
			 }
			 else {
				 System.out.println("输入的数据不合法");
			 }
		 }
		 System.out.println("请输入第三个边长:");
		 while(true) {
			  c=sc.nextInt();
			 if(c>=0&&c<100) {
				 break;
			 }
			 else {
				 System.out.println("输入的数据不合法");
			 }
		 }
		 
		 boolean sanjiao= (a + b > c) && (a + c > b) && (b + c > a);
		    if (sanjiao) {
		    	if(a==b  &&b==c) {
		    		System.out.println("等边三角形");
		    	}
		    	else if(a==b||b==c||a==c){
		    		System.out.println("等腰三角形");
		    	}
		    	else if(a*a+b*b==c*c ||a*a+c*c==b*b || b*b+c*c==a*a) {
		    		System.out.println("直角三角形");
		    	}
		    	else {
		    		System.out.println("普通三角形");
		    	}
		    }
		    else {
		    	System.out.println("不是三角形");
		    }
		    sc.close();
	}
	
}

打印用“*”组成的X形图案

package com.java;

public class Test {
//用*打印X形图案
	public static void main(String[] args) {
		int k = 4;
		for (int i = k; i >= 1; i--) {
			for (int m = 1; m <= k - i; m++) { 
				System.out.print(" "); // 最前面空格
			}
			System.out.print("*"); // 空格后面跟一个*
			for (int m = 1; m <= 2 * (i - 1); m++) { 
				System.out.print(" ");  //内部空格
			}
			System.out.println("*"); //内部空格后面跟一个*
		}
		for (int i = 1; i <= k; i++) {
			for (int m = 1; m <= k - i; m++) { 
				System.out.print(" ");// 最前面空格
			}
			System.out.print("*");  // 空格后面跟一个*
			for (int m = 1; m <= 2 * (i - 1); m++) {
				System.out.print(" "); //内部空格
			}
			System.out.println("*");//内部空格后面跟一个*
		}
	}
}

完成猜数字游戏 ,用户输入数字,判断该数字是大于,小于,还是等于随机生成的数字,等于的时候退出程序。

package com.java;

import java.util.Scanner;

public class Test {
//猜数游戏,用户猜数与随机数对比
	public static void main(String[] args) {
		// 生成一个1-100之间的随机数
		int target = (int) (Math.random() * 100 + 1);
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入你的猜测数据:");
		while (true) {
			int a = sc.nextInt();
			if (a > target) {
				System.out.println("猜大了!");
			}
			if (a < target) {
				System.out.println("猜小了!");
			}
			if (a == target) {
				System.out.println("恭喜你,猜对了!");
			}
		}
	}
}

打印输入行数的空心杨辉三角

package com.java;

import java.util.Scanner;

public class Test {
//打印输入行数的空心杨辉三角
	public static void main(String[] args) {
		int k = 0;
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入空心杨辉三角对应的行数:");
		while (true) {
			k = sc.nextInt();
			if (k <= 0 || k > Integer.MAX_VALUE) {
				System.out.println("输入的行数不合法!");
			} else {
				break;
			}
		}
		for (int i = 1; i <= k; i++) {
			// 前面空格
			for (int m = 1; m <= k - i; m++) {
				System.out.print(" ");
			}
			System.out.print("*");
			// 内部空格
			int kk = 2 * (i - 1) - 1; // 行数和内部空格数的关系
			if (kk > 0) {
				for (int m = 1; m <= kk; m++) { // 内部空格
					if (i == k) {
						System.out.print("*");
					} else {
						System.out.print(" ");
					}
				}
				System.out.print("*");
			}
			System.out.println();
		}
		sc.close();
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值