俩到经典题目
一.杨慧三角的变形
题目描述:
返回的是下标(从1开始)
解题分析
代码演示
import java.util.Scanner;
public class Main {
//杨慧三角的变形
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
//多组输入
while (scanner.hasNextInt()) {
int n = scanner.nextInt();
int m = 2 * n - 1;
int[][]array = new int[n][m];
//初始化矩阵
for (int i = 0; i < n ; i++) {
for (int j = 0; j < m ; j++) {
array[i][j] = 0;
}
}
//赋值
array[0][0] = 1;
for (int i = 1; i < n ; i++) {
array[i][0] = 1;
array[i][2 * i] = 1;
for (int j = 1; j < 2 * i ; j++) {
if (j == 1) {
array[i][j] = array[i - 1][j - 1] + array[i - 1][j];
} else {
array[i][j] = array[i - 1][j - 1] + array[i - 1][j - 2] + array[i - 1][j];
}
}
}
//找第一个偶数
int k = 0;
for ( ; k < m ; k++) {
if ((array[n - 1][k]) % 2 == 0) {
System.out.println(k + 1);
break;
}
}
if (k == m) {
System.out.println(-1);
}
}
}
}
二.计算某字符出现的次数
题目描述:
解题分析
理论基础:
1.将一个字符类型变成字符串:String.valueof(ch) 返回值String
char ch = 'b';
String m = String.valueOf(ch) + 'm';
System.out.println(m);
输出bm;
2.忽略大小写进行字符串比较
s.equalsIgnoreCase();返回值boolen
String s="aAb";
System.out.println(s.equalsIgnoreCase("aab"));
输出true;
3.字符串转换成字符数组()
s.toCharArray(),返回一个char类型数组
一般想得到(遍历)字符串中的每一个元素都将其转换成字符数组
str是长字符串
s是短字符串只包含一个字符
将字符串转化成字符数组用字符ch遍历str,每当遇到s(不区分大小写)就count++
代码演示
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
int count=0;
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
String s = scanner.nextLine();
for(char ch:str.toCharArray()){
if (s.equalsIgnoreCase(String.valueOf(ch))) {
count++;
}
}
System.out.println(count);
}
}