當前位置:編程學習大全網 - 編程軟體 - 編程算法問題java

編程算法問題java

//我只算出了最小次數。至於哪些數字加在壹起,我還沒想好怎麽做。代碼如下。

進口?Java . util . scanner;

公共?班級?主要?{

//用來存儲計算出的方法(n)以提高計算速度。

靜電?int?數據[]=新建?int[10000001];

公共?靜電?作廢?main(字符串?args[]){

int?n =新?掃描儀(System.in)。nextInt();

System.out.println(方法(n));

}

靜電?int?方法(int?n){

//如果n是壹個完整的平方數,返回結果?就壹次?遞歸退出

if(Math.pow((int)Math.sqrt(n),2)==n){

回歸?1;

}否則{

if(data[n]!=0){

回歸?數據[n];

}

//窮舉?如果是13,那就是窮舉。1+122+11?……

//執行f(1)+f(12)時

//f(1)=1,?F(12)然後執行窮舉,以此類推。

//最後得到次數最少的,比如f(4)+f(9)=2,就是最終結果。

int?min =方法(n-1)+方法(1);

for(int?I = 1;我& lt= n/2;i++){

if(方法(I)+方法(n-I)& lt;最小){

min =方法(I)+方法(n-I);

}

}

data[n]= min;

回歸?min

}

}

}

  • 上一篇:天正的繪圖快捷鍵?
  • 下一篇:.NET程序員,找實習生的工作。簡歷中寫培訓經歷好,還是不寫好?
  • copyright 2024編程學習大全網