第一题
以上三角形的数阵,第一行只有一个数1,以下每行的每个数,是恰好是它上面的数、左上角数和右上角的数,3个数之和(如果不存在某个数,认为该数就是0)。
求第n行第一个偶数出现的位置。如果没有偶数,则输出-1。例如输入3,则输出2,输入4则输出3,输入2则输出-1。
数据范围: 1≤�≤109 1≤n≤109
输入描述:
输入一个int整数
输出描述:
输出返回的int值
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// 注意 hasNext 和 hasNextLine 的区别
int n=in.nextInt();
int m=2*n-1;
//n为行,m为列
int[][] array=new int[n][m];
array[0][0]=1;
for(int i=1;i<n;i++){
//每一行第一个和最后一个的值是1
array[i][0]=array[i][2*i]=1;
//从第一列赋值到最后一列
for(int j=1;j<2*i;j++){
if(j==1){
//第一列的数字等于左上角的数字+头顶上的第一个数字
array[i][j]=array[i-1][j]+array[i-1][j-1];
}else{
//头顶往上三个数的和
array[i][j]=array[i-1][j]+array[i-1][j-1]+array[i-1][j-2];
}
}
}
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≤n≤1000 1 \le n \le 1000 \ 1≤n≤1000
输入描述:
第一行输入一个由字母、数字和空格组成的字符串,第二行输入一个字符(保证该字符不为空格)。
输出描述:
输出输入字符串中含有该字符的个数。(不区分大小写字母)
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
// 长字符串
String strs = "";
// 对比的一个字符
String find = "";
// 出现的次数
int count = 0;
while(scanner.hasNext()){
strs = scanner.nextLine();
find = scanner.nextLine();
for(char s : strs.toCharArray()){
// 忽略大小写,比较单个字符串
if(find.equalsIgnoreCase(String.valueOf(s))){
count++;
}
}
System.out.println(count);
}
}
}