目录
一、杨辉三角的变形
题目描述:
以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是 0)。
求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3,输入2则输出-1。
数据范围:1<=n<=
输入描述:
输入一个int整数
输出描述:
输出返回的int值
示例
输入:4
输出:3
题目解析:
这道题如果自己构建杨辉三角会超出时间限制,所以要想别的办法。通过找规律我们可以发现,第一个偶数出现在这一行位置是按"2, 3, 2, 4"的规律排的,所以只要根据行数对应这个规律就可以求出来位置。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
if(n <= 2){
System.out.println(-1);
return;
}
int[] arr = {2,3,2,4};
System.out.println(arr[(n + 1) % 4]);
}
}
二、计算某字符出现次数
题目描述:
写出一个程序,接受一个由字母、数字和空格组成的字符串,和一个字符,然后输出输入字符串中该字符的出现次数。(不区分大小写字母)
数据范围:1<=n<=1000
输入描述:
第一行输入一个由字母和数字以及空格组成的字符串,第二行输入一个字符。
输出描述:
输出输入字符串中含有该字符的个数。(不区分大小写字母)
示例
输入:ABCabc
A
输出:2
题目解析:
由于不区分大小写,所以先将两行输入全部以字符串的形式接收,然后利用toLowerCase方法将两个字符串都转换为小写,由于第二个字符串其实只有一个字符,我们用charAt方法直接取其第一个元素。接下来就是设置一个count记录相等的数量,通过循环遍历第一个字符串,此时已经都是小写,如果字符串该位置的元素和题目所给的字符相等,count++,最后输出count。
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
String s1 = scanner.nextLine();
s = s.toLowerCase();
s1 = s1.toLowerCase();
char ch = s1.charAt(0);
int count = 0;
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) == ch){
count++;
}
}
System.out.println(count);
}
}
如有建议或想法,欢迎一起讨论学习~