分苹果问题

hu020138 2017-03-09 12:11:40
A的权是2,B的权是3,C的权是4,现在有一堆苹果(有顺序int[] a),如果苹果小于9,那么不分配苹果,如果苹果数为9,那么A得到a[0] a[1] B得到a[2]a[3]a[4]C得到a[5]a[6]a[7]a[8],如果苹果数大于9小于18那么也还是像上面这样分配,假设苹果数为19,那么A得到a[0] a[1] a[9] a[10],B得到a[2]a[3]a[4]a[11]a[12]a[13],C得到a[5]a[6]a[7]a[8]a[14] a[15] a[16] a[17],剩下的苹果不分配,以此类推,,,,,,
要写一个方法实现苹果的分配,方法的参数为一个数组(表示苹果),一个Map(表示ABC的权重,不一定是三个人)
应该怎么实现????
...全文
280 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
baidu_33319794 2017-03-09
  • 打赏
  • 举报
回复
结果: D:0,1,2,9,10,11, A:3,12, B:4,5,13,14, C:6,7,8,15,16,17,
baidu_33319794 2017-03-09
  • 打赏
  • 举报
回复
public static void main(String[] args) { int appleNo = 19; int count = 9;//按多少去分, int [] apple = new int[appleNo]; for (int i = 0; i < appleNo; i++) { apple[i] = i; } Map map = new HashMap(); map.put("A", 1); map.put("B", 2); map.put("C", 3); map.put("D", 3); String [] people = new String[map.size()]; int peopleCount = 0; Iterator<String> iterator = map.keySet().iterator(); while(iterator.hasNext()){ people[peopleCount] = iterator.next(); peopleCount++; } //最终结果 String [] peopleAppple = new String[map.size()]; //附初始值"" for (int i = 0; i < peopleAppple.length; i++) { peopleAppple[i] = people[i]+":"; } int nowCount = 0;//当前标识 int size = (apple.length/count); for (int i = 0; i < size; i++) { for (int j = 0; j < people.length; j++) { for (int k = 0; k < (Integer)map.get(people[j]); k++) { peopleAppple[j] = peopleAppple[j] + apple[nowCount]+","; nowCount++; } } } for (int i = 0; i < peopleAppple.length; i++) { System.out.println(peopleAppple[i]); } }

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧