赫头君觉得白色的墙面好单调,他决定给房间的墙面涂上颜色。他买了3种颜料分别是红、黄、蓝,然后把房间的墙壁竖直地划分成 几个部分,蒜头希望每个相邻的部分颜色不能相同。他想知道一共有多少种给房间上色的方案。
例如,当n=5时,下面就是一种合法方案。
蓝红黄红黄
由于墙壁是一个环形,所以下面这个方案就是不合法的。
蓝红黄红黄
输入格式
一个整数 n,表示房间被划分成多少部分。(1 ≤n< 50)
输出格式
一个整数,表示给墙壁涂色的合法方案数。
import java.util.*; public class LANQIAO1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); long[] a = new long[51]; a[1] = 3; a[2] = 6; a[3] = 6; // 三种颜色,a[i]=a[i-1]+a[i-2]*2,a[i-1]是说第一和第n-1部分颜色不同,那么第n部分只能涂一种颜色, // a[i-2]*2如果第一和第n-1部分颜色相同,那么第n部分就有两种颜色可选 for (int i = 4; i <= 50 ; i++) { a[i] = a[i - 1] + a[i - 2] * 2; } System.out.println(a[n]); } }