[問題] 試算表
自家公司有需要 必須寫一個試算表程式
需求是這樣
現在有五個規格的產品
假設是 21 22 23 24 25 單位是公克
現在要包裝成 6/7/8粒 一盒
每盒限重假設是130g
列出所有組合的可能
EX: 21 21 22 23 24
代表六顆裡面 21規格的兩顆 22 23 24規格各一顆
我試著寫了一下,以每盒裝六粒為例子
列出所有組合可能:
public static void main(String[] args) {
System.out.println("count test");
int []pro = {0,21,22,23,24,25};
//五種規格
for(int i=1;i<=5;i++){
System.out.println();
for(int j=1; j<=5; j++ ) {
for(int k=1; k<=5; k++ ) {
for(int l=1; l<=5; l++ ) {
for(int m=1; m<=5; m++ ) {
for(int n=1; n<=5; n++ ) {
if(pro[i]+pro[j]+pro[k]+pro[l]+pro[m]+pro[n]==130){
System.out.println();
System.out.print(pro[i]+" ");
System.out.print(pro[j]+" ");
System.out.print(pro[k]+" ");
System.out.print(pro[l]+" ");
System.out.print(pro[m]+" ");
System.out.print(pro[n]+" ");
System.out.print(pro[i]+pro[j]+pro[k]+pro[l]+pro[m]+pro[n]);
}
}
}
}
}
}
}
}
}
這種寫法會造成重複的組合
EX 21 21 21 21 22 21 跟 22 21 21 21 21 21 其實是一樣的
請問各位高手我該如何修改我的程式
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.79.123
推
06/14 21:34, , 1F
06/14 21:34, 1F
→
06/14 21:36, , 2F
06/14 21:36, 2F
推
06/14 21:37, , 3F
06/14 21:37, 3F
→
06/14 21:38, , 4F
06/14 21:38, 4F
→
06/14 21:43, , 5F
06/14 21:43, 5F
※ 編輯: kasuma 來自: 114.32.79.123 (06/14 21:47)
推
06/14 22:20, , 6F
06/14 22:20, 6F
推
06/14 22:24, , 7F
06/14 22:24, 7F
→
06/14 22:26, , 8F
06/14 22:26, 8F
推
06/14 23:22, , 9F
06/14 23:22, 9F
→
06/14 23:23, , 10F
06/14 23:23, 10F
→
06/14 23:32, , 11F
06/14 23:32, 11F
推
06/14 23:42, , 12F
06/14 23:42, 12F
→
06/14 23:46, , 13F
06/14 23:46, 13F
推
06/14 23:53, , 14F
06/14 23:53, 14F
推
06/14 23:56, , 15F
06/14 23:56, 15F
→
06/15 00:57, , 16F
06/15 00:57, 16F