我写了一个程序,但是它遗漏了一些东西,我也不知道该如何从循环中获取租金

时间:2019-04-17 07:01:49

标签: java

一个房地产办公室处理50个公寓单元。当租金为每人$ 600时 一个月,所有单位都被占领。但是,租金每增加40美元, 一个单位空缺。每个占用的单元平均需要27美元 一个月进行维护。应该租用多少个单位以最大化 利润吗?

编写一个程序,提示用户输入:

  • 公寓数量

  • 占据所有单位的租金

  • 租金上涨导致单位空置

  • 用于维持租用单位的金额

然后程序输出要出租以最大化的单位数量 利润


但是我想向用户显示租金,我不知道如何

import java.util.*;
public class yeungah {

    public static void main(String[] args) {
        Scanner input =new Scanner(System.in);
        double rent, maintenance, maintenanceCost, increase;
        double result=0, profit, maxProfit = 0;
        int h=0, number;

        System.out.println(" enter the number of apartment units: ");
        number=input.nextInt();

        System.out.println( " enter the rent value for all the occupied units: ");
        rent=input.nextInt();

        System.out.println("The increase in rent that results in a vacant unit: ");
        increase=input.nextInt() ;

        System.out.println( "enter the  maintain value for each occupied unit: ") ;
        maintenanceCost=input.nextInt() ;

        for (int i = number; i > 0; i--, rent += increase)
        {
            result = i * rent ;
            maintenance = i * maintenanceCost ;
            profit = result – maintenance ;

            if (profit > maxProfit)
            {
                maxProfit = profit ;
                h =i ;
            }
        }
        System.out.println( "Number of units to be rented in order to maximize profit is: "+maxProfit) ;
        System.out.println("It occurs when Number of occupied Units is:"+h) ;
    }
}

任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

遗憾的是我还无法发表评论,但我很好奇。 for循环何时结束?我看不到它曾经达到i> 0,因为我一直在减少,而且我看不见我在for循环中被更改了。

我会使用while循环,当利润不超过maxprofit时中断。

最后,只需花h就可以回答分配问题

把我写的所有东西都当作盐,因为我也是菜鸟。 :)

答案 1 :(得分:0)

要显示每次增加后的租金,请在for循环结束时执行System.out.println(rent)。 要显示最后的租金,您可以在循环后执行相同的操作。

我在这里看到的一个问题是,一旦找到最大利润,您似乎就不会退出循环。我建议使用布尔标志。将其设置为false并将其作为条件> 1> 0。 然后在循环中,在else语句中将else设置为true。

一旦找到最大利润,这将导致循环中断。