【ACM】HUD 1021 Fibonacci Again (for java)

版权声明:MZ21G https://blog.csdn.net/qq_35793285/article/details/84788510

规律题

简单的使用long数据类型会在第87项溢出

通过对各项除3取余发现每8项是一个循环

so。。。。

import java.util.Scanner;

public class Main {
	
	public static int fib(int n) {
		n = n % 8;
		if (n == 0) return 7;
		if (n == 1) return 11;
		else {
			int[] lala = new int[n+1];
			lala[0] = 7;
			lala[1] = 11;
			
			for (int i = 2; i <= n; i++) {
				lala[i] = lala[i-1] + lala[i-2];
			}
			return lala[n];
		}

	}
	
	public static void main(String[] args) {
		
		Scanner scanner = new Scanner(System.in);
			
		while (scanner.hasNext()) {
			
			int k = scanner.nextInt();
			
			int result = fib(k) % 3;
				
			if (result == 0)
				System.out.println("yes");
			else
				System.out.println("no");		
			
		}
		
	}
}

猜你喜欢

转载自blog.csdn.net/qq_35793285/article/details/84788510