clever Lily - for цикъл
Лили вече е на N години. За всеки свой рожден ден тя получава подарък. За нечетните рождени дни (1, 3,
5...n) получава играчки, а за всеки четен (2, 4, 6...n) получава пари. За втория рожден ден получава 10.00 лв,
като сумата се увеличава с 10.00 лв, за всеки следващ четен рожден ден (2 -> 10, 4 -> 20, 6 -> 30...и т.н.). През
годините Лили тайно е спестявала парите. Братът на Лили, в годините, които тя получава пари, взима по 1.00
лев от тях. Лили продала играчките получени през годините, всяка за P лева и добавила сумата към
спестените пари. С парите искала да си купи пералня за X лева. Напишете програма, която да пресмята,
колко пари е събрала и дали ѝ стигат да си купи пералня.
Вход
Програмата прочита 3 числа, въведени от потребителя, на отделни редове:
Възрастта на Лили - цяло число в интервала [1...77]
Цената на пералнята - число в интервала [1.00...10 000.00]
Единична цена на играчка - цяло число в интервала [0...40]
Изход
Да се отпечата на конзолата един ред:
Ако парите на Лили са достатъчни:
o “Yes! {N}” - където N е остатъка пари след покупката
Ако парите не са достатъчни:
o “No! {М}“ - където M е сумата, която не достига
Числата N и M трябва да за форматирани до вторият знак след десетичната запетая.
Примерен вход и изход
вход изход Коментари
10
170.00
6
Yes! 5.00 Първи рожден ден получава играчка; 2ри -> 10лв; 3ти -> играчка;
4ти -> 10 + 10 = 20лв; 5ти -> играчка; 6ти -> 20 + 10 = 30лв; 7ми -> играчка;
8ми -> 30 + 10 = 40лв; 9ти -> играчка; 10ти -> 40 + 10 = 50лв.
Спестила е -> 10 + 20 + 30 + 40 + 50 = 150лв. Продала е 5 играчки по 6 лв = 30лв.
Брат ѝ взел 5 пъти по 1 лев = 5лв. Остават -> 150 + 30 – 5 = 175лв.
175 >= 170 (цената на пералнята) успяла е да я купи и са и останали 175-170 = 5 лв.
21
1570.98
3
No! 997.98 Спестила е 550лв. Продала е 11 играчки по 3 лв = 33лв. Брат ѝ взимал 10 години
по 1 лев = 10лв. Останали 550 + 33 – 10 = 573лв
573 < 1570.98 – не е успяла да купи пералня. Не ѝ достигат 1570.98–573 = 997.98лв
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main() {
int age;
cin >> age;
double washingMashinePrice;
cin >> washingMashinePrice;
int toyPrice;
cin >> toyPrice;
int moneyYears = 0;
int toyYears = 0;
for(int i = 1; i <= age; i++){
if(i % 2 == 0){
moneyYears++;
}else{
toyYears++;
}
}
double money;
for(int i = 1; i <= moneyYears; i++){
money = money + (10 * 1);
money = (money + ((toyYears * toyPrice) - moneyYears));
}
double diff = abs(washingMashinePrice - money);
cout.setf(ios::fixed);
cout.precision(2);
if(money >= washingMashinePrice){
cout << "Yes!" << diff;
}else{
cout << "No!" << diff;
}
return 0;
}
Някъде бъркам нещо при изчисленията!
Благодаря за насоките помогнаха ми
#include <iostream>
#include <cmath>
using namespace std;
int main() {
int age;
cin >> age;
double washingMashinePrice;
cin >> washingMashinePrice;
int toyPrice;
cin >> toyPrice;
int moneyYears = 0;
int toyYears = 0;
int money = 0;
int saveMoney = 0;
for(int i = 1; i <= age; i++){
if(i % 2 == 0){
moneyYears++;
money = moneyYears * 10;
saveMoney = saveMoney + money;
}else{
toyYears++;
}
}
money = saveMoney - moneyYears + (toyYears * toyPrice);
double diff = abs(washingMashinePrice - money);
cout.setf(ios::fixed);
cout.precision(2);
if(money >= washingMashinePrice){
cout << "Yes! " << diff;
}else{
cout << "No! " << diff;
}
return 0;
}