题解:假设要涂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;
}
}
}