day34—编程题

1.第一题

1.1题目

描述:
NowCoder每天要给许多客户写电子邮件。正如你所知,如果一封邮件中包含多个收件人,收件人姓名之间会用一个逗号和空格隔开;如果收件人姓名也包含空格或逗号,则姓名需要用双引号包含。
现在给你一组收件人姓名,请你帮他生成相应的收件人列表
输入描述:
输入包含多组数据。
每组数据的第一行是一个整数n (1≤n≤128),表示后面有n个姓名;紧接着n行,每一行包含一个收件人的姓名。姓名长度不超过16个字符
输出描述:
对应每一组输入,输出一行收件人列表

1.2思路

  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思路

  1. 算出斐波那契数的前90项
  2. 输出第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);
            
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值