0
私のC++クラスでは、特定の変数を指定すると、家賃を最大にするアパートメントの数を返すプログラムを作成することがプログラミング練習の1つです。私のコードは、答えが正しい答えよりも1つ低いことを除いて動作します。ここに私のコードは次のとおりです。賃貸アパートの利益を最大化する数を計算するプログラムを最適化する
// ch5ProgExercise28.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
using namespace std;
int main()
{
int totalUnits, occupiedUnits, vacantUnits;
double rentAllOccupied, rentIncreaseVacant, maintenance, oldProfit, newProfit;
cout << "Enter the total number of units, the rent to occupy all the units,"
<< " the increase in rent that results in a vacant unit, and the amount"
<< " to maintain a rented unit.";
cin >> totalUnits >> rentAllOccupied >> rentIncreaseVacant >> maintenance;
oldProfit = ((rentAllOccupied)*totalUnits) - (maintenance*totalUnits);
occupiedUnits = totalUnits;
vacantUnits = totalUnits - occupiedUnits;
do
{
oldProfit = (rentAllOccupied + (rentIncreaseVacant*vacantUnits))*
occupiedUnits - (maintenance*occupiedUnits);
occupiedUnits--;
vacantUnits = totalUnits - occupiedUnits;
newProfit = (rentAllOccupied + (rentIncreaseVacant*vacantUnits))*
occupiedUnits - (maintenance*occupiedUnits);
} while (oldProfit < newProfit);
occupiedUnits += 1;
cout << "To maximize profits, " << occupiedUnits << " units will be rented." << endl;
cin >> oldProfit; //stops the program from exiting right away
return 0;
}
はoccupiedUnits番号が正しい答えのためにそれに1を追加することなく正確であるように、私が使用することができ、より良いループ構造はありますか?ありがとう。