【发布时间】:2018-11-13 02:49:54
【问题描述】:
给定任务:“编写名为 'mysplit' 的函数,该函数获取一个 int 数组并调用 名为“MySplit”的递归方法。函数 MySplit 需要检查是否 当前数组可以分为 2 组,它们遵循以下条件:
*每组的总和必须相等。
*每个数字在每个组中仅出现一次(此子句旨在防止用户添加/复制数字以使两个组=第一个子句相等)。
*所有能被5整除的数必须在同一组内。
*所有可以被 3(而不是 5)整除的数字都必须在第二组中。
我已经编写了这段代码,但是走到了死胡同。我没有完成任务的前 2 个子句,并且想不出将它插入到我的代码中的方法。
这是我写的代码:
public static boolean mySplit(int[] nums)
{
return MySplit(nums,0,0,0);
}
public static boolean MySplit(int[]arr,int result_5,int result_3,int pointer)//2 groups: 'result_5' & 'result_3' and pointer to iterate through an array
{
if(arr[pointer]%5==0)
{
return MySplit(arr,result_5+arr[pointer],result_3,pointer++);
}
else if(arr[pointer]%3==0)
{
return MySplit(arr,result_5,result_3+arr[pointer],pointer++);
}
}
*编辑: **示例:
mySplit([1,1])==>真
mySplit([1,1,1])==>假
mySplit([2,4,2])==>真
mySplit([5,21,8,15,7])==>真
mySplit([15,10,5])==>假
mySplit([15,8,7])==>真
【问题讨论】:
-
你应该先用谷歌搜索这个任务。 6 天前已经有人问过这个问题,并且有答案:stackoverflow.com/questions/50585258/…
-
链接的重复问题没有可接受的答案