题解:假设要涂n+1个图案
1.第n个与第一个颜色不一样,第n+1个则要与第一个和第n个都不一样,所以只有一种选择
f(n+1)=f(n)
2.第n个与第一个颜色一样,则第n+1个有两种选择
而此时反过去看第n-1个的选择,第一个和第n个都要与第n-1个不一样,但他们是一样的颜色,所以可以忽视第n个的效果,此时的选择即为f(n-1)
f(n+1)=2*f(n-1)
两种情况相加:
f(n+1)=f(n)+2*f(n-1)
简化:
f(n)=f(n-1)+2*f(n-2)
import java.util.*;public class Main {public static void main(String[] args) {Scanner scanner=new Scanner(System.in);int n=scanner.nextInt();while (n>0&&n<=50){System.out.println(Calculate(n));n= scanner.nextInt();}}static int Calculate(int num){if (num==1){return 3;} else if (num==2) {return 6;}else {return Calculate(num-1)+Calculate(num-2)*2;}}
}