2016-02-24 57 views
1

一直在網上尋找和改變我的問題,以找到類似的東西,但不完全確定如何在Java中正確地處理這個問題。我有一個Web應用程序,它接受(A x B)的2D維度,然後轉到我的數據庫並檢索維度大於或等於(A x B)的所有項目。然後我找到最好的成本項目,並將其與總數相乘所需數量一起返回。2D尺寸,數量和包裝算法?

但是就在現在如果例如我有一個1000 x 1000的便宜物品,但我已經要求10 100×100。1000 x 1000將返回,因爲它是最好的成本,但我然後將總數設置爲10 1000 x 1000這是太多了。

如何最好採取大尺寸,不管它是什麼,並嘗試找出有多少要求的大小可以從它拆分和切斷總x數量的聰明多少?

希望這是有道理的。

到目前爲止,我已經嘗試

private Double FindSmartTotal(double cheapestTotal, String sizeDB, String desc, Integer quantity) { 
    desc = LookForSizes(desc); 
    if(desc!=null){ 
     LookForSizesOfDB(sizeDB); 
     LookForSizesOfDescription(desc); 
     Dimension d1 = new Dimension(dbitemSizeA, dbitemSizeB); 
     Dimension d2 = new Dimension(homeviewitemSizeA, homeviewitemSizeB); 
     if(d1.getWidth() > d2.getWidth() && d1.getHeight()> d2.getHeight()){ 
      double dividedWidth = d1.getWidth()/d2.getWidth(); 
      double dividedHeight = d1.getHeight()/d2.getHeight(); 
      double roundedWidth = round(dividedWidth,1, BigDecimal.ROUND_HALF_UP); 
      double roundedHeight = round(dividedHeight,1, BigDecimal.ROUND_HALF_UP); 
      System.out.println("here"); 
     } 
    } 
    return null; 
} 

,但我不知道我接下來會做什麼,或者是否有更好的方式來處理,並取消上面的代碼爲新。

回答

1

想出這一個。更多的數學基礎。

乘兩個尺寸以獲得每個區域。

然後for循環,每個循環減去較大的一個較小的區域和遞增計數器。直到減法> 0爲止。這將提供比可以從更大區域切割的數量。