Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何修复此代码中的错误,以及如何从for循环更改为递归?i';我是编程初学者:)_Java - Fatal编程技术网

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);
}