题目错误,三个栅栏两种颜色要有6中方法??我想破脑袋都不行。
所以下文是根据题目来解的,并不能通过测试。
我们有一个栅栏,它有n
个柱子,现在要给柱子染色,有k
种颜色可以染。
必须保证任意两个相邻的柱子颜色不同,求有多少种染色方案。
由题我们可以知道这是我们先不管有多少根柱子,
* 我们先来看看有多少种颜色
* 先假设有k种颜色
* 那么第一根柱子就有k中方法,第二根就有哦(k-1)种,第三根又有(k-1)种......
代码如下:
public class ZhaLanRanSe {
/**
* 由题我们可以知道这是我们先不管有多少根柱子,
* 我们先来看看有多少种颜色
* 先假设有k种颜色
* 那么第一根柱子就有k中方法,第二根就有哦(k-1)种,第三根又有(k-1)种......
*/
public static int numWays(int n, int k) {
int num = 0; //方法总数
for (int i = 1; i <= n; i++) {
if(i ==1){
num += k;
} else{
num = num * (k-1);
}
}
return num;
}
public static void main(String[] args) {
int num = numWays(3,2);
System.out.println(num);
}
}