1.第一题
1.1题目
描述:
NowCoder每天要给许多客户写电子邮件。正如你所知,如果一封邮件中包含多个收件人,收件人姓名之间会用一个逗号和空格隔开;如果收件人姓名也包含空格或逗号,则姓名需要用双引号包含。
现在给你一组收件人姓名,请你帮他生成相应的收件人列表
输入描述:
输入包含多组数据。
每组数据的第一行是一个整数n (1≤n≤128),表示后面有n个姓名;紧接着n行,每一行包含一个收件人的姓名。姓名长度不超过16个字符
输出描述:
对应每一组输入,输出一行收件人列表
1.2思路
- 将每个名字按格式输出
- 注意:每个名字之间是", "间隔的并且最后一个名字的后面是没有间隔的
1.3解题
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
sc.nextLine();//吃掉换行符
for(int i = 0;i < n;i++){
String name = sc.nextLine();
if(name.contains(",") || name.contains(" ")){
System.out.print("\"" + name + "\"");
}else{
System.out.print(name);
}
// 每个名字之间是", "间隔的并且最后一个名字的后面是没有间隔的
if(i != n - 1){
System.out.print(", ");
}
}
System.out.println();
}
}
}
2.第二题
2.1题目
描述:
一只成熟的兔子每天能产下一胎兔子。每只小兔子的成熟期是一天。 某人领养了一只小兔子,请问第N天以后,他将会得到多少只兔子
输入描述:
测试数据包括多组,每组一行,为整数n(1≤n≤90)。
输出描述:
对应输出第n天有几只兔子(假设没有兔子死亡现象)
2.2思路
- 算出斐波那契数的前90项
- 输出第n-1项
2.3解题
方法一:
import java.util.*;
public class Main {
public static void main(String[] args) {
long[] fib = new long[90];
fib[0] = 1;
fib[1] = 2;
for(int i = 2;i < 90;i++){
fib[i] = fib[i-1] + fib[i-2];
}
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
int n = sc.nextInt();
System.out.println(fib[n-1]);
}
}
}
方法二:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while(sc.hasNext()){
long n = sc.nextLong();
long first = 1;
long second = 1;
long ret = 1;
for(int i = 2;i <= n;i++){
ret = first + second;
first = second;
second = ret;
}
System.out.println(ret);
}
}
}