Java 如何修复此代码中的错误,以及如何从for循环更改为递归?i';我是编程初学者:)
我试图通过一些输入和计算来找出利润的方法。 但我认为数组的长度有问题,或者我不知道。 我也想尝试使用递归,但是如何实现呢? 求你了,我需要你的帮助^_^ 谢谢Java 如何修复此代码中的错误,以及如何从for循环更改为递归?i';我是编程初学者:),java,Java,我试图通过一些输入和计算来找出利润的方法。 但我认为数组的长度有问题,或者我不知道。 我也想尝试使用递归,但是如何实现呢? 求你了,我需要你的帮助^_^ 谢谢 公共类MatlabLAB2{ 公共静态void main(字符串[]args){ 国际资本=100; int nDay=7; int[]buyP={5,20,7,10,4,80,1}; int[]sellP={25,50,100,3,10,2,95}; findProfit(资本、周日、买入、卖出); } 公共静态无效findProfit
公共类MatlabLAB2{
公共静态void main(字符串[]args){
国际资本=100;
int nDay=7;
int[]buyP={5,20,7,10,4,80,1};
int[]sellP={25,50,100,3,10,2,95};
findProfit(资本、周日、买入、卖出);
}
公共静态无效findProfit(国际资本、国际日、国际[]买入、国际[]卖出){
int[]数组=新的int[NDay];
国际利润=0;
对于(int i=0;i您正在迭代循环,直到
(int i = 0; i <= BuyingP.length; i++)
(int i=0;i您有两个选项来修复此问题
一,
public static void find profit(int capital,int NDay,int[]BuyingP,int[]SellingP){
int[]数组=新的int[NDay];
国际利润=0;
for(int i=0;我请解释你想通过递归实现什么。首先你应该研究并尝试,如果你遇到了问题,那么你可以问它。我想通过递归而不是方法findproof中的for循环来实现这段代码。它是如何实现的?如果它解决了你的问题,请标记为已接受。如果你需要任何进一步的解释,请发表评论
(int i = 0; i <= BuyingP.length; i++)
(int i = 0; i < BuyingP.length; i++)
public static void findProfit(int capital, int NDay, int[] BuyingP, int[] SellingP) {
int[] Array = new int[NDay];
int Profit = 0;
for (int i = 0; i <= BuyingP.length-1; i++) {
for (int j = i; j <= SellingP.length-1; j++) {
for (int k = 0; k <= NDay-1; k++) {
Array[k] = (capital / BuyingP[i]) * SellingP[j];
}
Profit = findMaxOfArray(Array);
}
}
System.out.println(Profit);
}
public static void findProfit(int capital, int NDay, int[] BuyingP, int[] SellingP) {
int[] Array = new int[NDay];
int Profit = 0;
for (int i = 0; i < BuyingP.length; i++) {
for (int j = i; j < SellingP.length; j++) {
for (int k = 0; k <= NDay-1; k++) {
Array[k] = (capital / BuyingP[i]) * SellingP[j];
}
Profit = findMaxOfArray(Array);
}
}
System.out.println(Profit);
}