阿里算法工程师在线编程题

第一次投实习,阿里的在线编程题,只有一道,半个小时完成。


这道题主要要想到有递推公式

当N>=3时A(N)=M*(M-1)^(N-1)-A(N-1)

N=2时,初值为M(M-1),因为只有两块,M种颜色,另一块就是M-1。

JAVA编程实现:

public class addDigit{
    public static void main(String args[]){
    	int x = sol(5,5);
    	System.out.println(x);
    }
   static int sol(int m,int n){
	   if(n==3) return m*(m-1)*(m-2);
	   else{
		   int res =  (int) ((int)m*Math.pow(m-1, n-1)-sol(m,n-1));
		   return res;
	   }
   }    
}

阅读更多

没有更多推荐了,返回首页