[問題] c++ 數字很大
double force_method(item *&list , const int &number , const double &weight){
double maxvalue=0 ; //暴力法的最佳解
long long int maxnumeber;
int *XB;
long long int temp1 = ( long long int ) pow ( 2 , number );
for( long long int i = 1 ; i < temp1 ; i++){//1~n^2-1
int *x;
x = new int [ number ];
long long int temp=i;
double sofarweight=0 , sofarvalue=0 ;//紀錄目前重量 和價值
for ( int j=0 ; j < number ; j++ ){
//十進位轉成二進位
x[ j ] = temp % 2 ;
temp = temp / 2 ;
//計算重量
if( x [ j ] == 1 ){
sofarweight += list[ j ].weight;
sofarvalue += list[ j ].value;
}
}
if( sofarweight <= weight && sofarvalue > maxvalue ){
maxvalue = sofarvalue;
maxnumeber = i;
XB=x;
}
}
return maxvalue;
}
我的問題在於 當number大於25的時候 程式就無法回傳值
其餘的沒有問題(值得傳輸 演算法)
第一次遇到沒有經驗 請大大多多指教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.20.115
→
04/16 21:04, , 1F
04/16 21:04, 1F
→
04/16 21:12, , 2F
04/16 21:12, 2F
→
04/16 21:13, , 3F
04/16 21:13, 3F
推
04/16 21:33, , 4F
04/16 21:33, 4F
→
04/16 21:33, , 5F
04/16 21:33, 5F
→
04/16 23:34, , 6F
04/16 23:34, 6F
Programming 近期熱門文章
PTT數位生活區 即時熱門文章