一个房地产办公室处理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) ;
}
}
任何人都可以帮忙吗?
答案 0 :(得分:0)
遗憾的是我还无法发表评论,但我很好奇。 for循环何时结束?我看不到它曾经达到i> 0,因为我一直在减少,而且我看不见我在for循环中被更改了。
我会使用while循环,当利润不超过maxprofit时中断。
最后,只需花h就可以回答分配问题
把我写的所有东西都当作盐,因为我也是菜鸟。 :)
答案 1 :(得分:0)
要显示每次增加后的租金,请在for循环结束时执行System.out.println(rent)。 要显示最后的租金,您可以在循环后执行相同的操作。
我在这里看到的一个问题是,一旦找到最大利润,您似乎就不会退出循环。我建议使用布尔标志。将其设置为false并将其作为条件> 1> 0。 然后在循环中,在else语句中将else设置为true。
一旦找到最大利润,这将导致循环中断。