前言
小白一枚,如有错误请多指教,共同学习,一起进步。
一、Fibonacci数列
Fibonacci数列是这样定义的:F[0] = 0,F[1] = 1
输入描述:
输入为一个正整数N(1 ≤ N ≤ 1,000,000)
输出描述
输出一个最小的步数变为Fibonacci数“
示例1
输入
15
输出
2
代码如下:
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int num=scan.nextInt();
int f1=0;
int f2=1;
int f3=0;
while(num>f3){
f3=f1+f2;
f1=f2;
f2=f3;
}
//当num>f3是可能num左边的数字更近一点,所以需要判断一下
int count=Math.min(Math.abs(f3-num),Math.abs(f1-num));
System.out.println(count);
}
}
二、下厨房
题目链接
该题为字符串输入问题
输入描述
每个输入包含 1 个测试用例。每个测试用例的第 i 行,表示完成第 i 件料理需要哪些材料,各个材料用空格隔开,输入只包含大写英文字母和空格,输入文件不超过 50 行,每一行不超过 50 个字符。
输出描述
输出一行一个数字表示完成所有料理需要多少种不同的材料。
示例
输入
BUTTER FLOUR
HONEY FLOUR EGG
输出
4
注意这个题的测试用例有多行输入
思路就是将字符串以空格分割,存放到HashSet中自动去重,返回长度就是所需要的输出。
代码如下:
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
HashSet <String> set=new HashSet<>();
//多行输入
while(scan.hasNext()){
//Returns true if this scanner has another token in its input.
String s=scan.nextLine();<