1. Распространённая задача: Дано четырехзначное число (к примеру 5678), вывести на экран в обратном порядке цифры из которых это число состоит. То есть мы должны увидеть на экране 8765. Подсказка: чтобы взять из числа отдельные цифры, надо применять деление по модулю на 10.
Показать код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
usingnamespacestd;
intmain()
{
setlocale(LC_ALL,"rus");
intmainNumber=5678;
cout<<"Дано целое число: "<<mainNumber<<endl;
cout<<"Число наизнанку: ";
// остаток от деления четырехзначного числа 5678 на 10
cout<<mainNumber%10;// 5678 % 10 = 8
// далее делим mainNumber на 10 и записываем в переменную
// так как тип переменной int, дробная часть отбросится
// и mainNumber будет равен 567 (а не 567,8)
mainNumber/=10;
// показываем остаток от деления 567 на 10 на экран
cout<<mainNumber%10;
mainNumber/=10;
cout<<mainNumber%10;
mainNumber/=10;
cout<<mainNumber%10;
mainNumber/=10;
cout<<endl<<endl;
return0;
}
Результат:
2. На сайте практически любого коммерческого банка, можно встретить так называемый Депозитный калькулятор, который позволяет людям, не желающим углубляться в формулы расчета процентных ставок, узнать какую прибыль они получат. Для этого им достаточно заполнить определённые поля, нажать на кнопку и увидеть результат. Это простая программа, которую уже сможет написать каждый из вас. Итак, задача: Пользователь вводит сумму депозита и количество месяцев хранения денег в банке. Необходимо провести расчет и показать на экран прибыль с депозита в месяц, за весь срок депозита, и общую сумму к выплате в конце срока. Валюта пусть будет – доллар США. Процентная ставка – 5% годовых. Формула расчета процентов в месяц – СуммаДепозита * (ПроцентнаяСтавка / 100) / ДнейВГоду * ДнейВМесяце.
// умножаем % за 1 месяц на весь срок депозита и записываем в profit
profit*=amountMonth;
cout<<profit<<" $"<<endl;
cout<<"Общая сумма выплаты в конце срока: "
<<sumDeposit+profit<<" $";
cout<<endl<<endl;
return0;
}
Результат:
Возможно у вас возникли вопросы по решению задач – задавайте их в комментариях!
4.4
47
151 thoughts on “Задачи: арифметические операции в С++”
Первое задание делается легко с помощью цикла:
#include using namespace std; int main () { setlocale(LC_ALL, "Russian"); cout << a; for (int i = 0; i < 4; i++) { cout << a % 10; a /= 10; } cout << endl; system("pause"); return 0; }
using namespace std; int main () { int a; setlocale(LC_ALL, “Russian”); cin>> a; for (int i = 0; i < 4; i++) { cout << a % 10; a /= 10; } cout << endl; system("pause"); return 0; }
Немного переделал код задачки №1…нам ведь не просто надо по одной, на оборот вывести на экран цифры числа, а перевернуть число чтобы можно было им дальше пользоваться…если конечно правильно понял.
Блин, первый коммент можете удалить. Я не знаю почему или так и должно быть но ваш код считает что если сумма вложения 100$, а процент в год 100% и срок 12 получется прибыль 98$. Я вот сделал, посмотрите у меня получется все верно!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include
using namespacestd;
intmain()
{
constintprocent=5;
intinterval;
floatdeposit,profit;
cout<>deposit;
cout<>interval;
//Расчет профита за 1 месяц
profit=((deposit/100*procent)/360)*30;
cout<<"Прибыль за 1 месяц: "<<profit<<" $"<<endl;
//Расчет профита за весь срок вложения
cout<<"Прибыль за весь срок: "<<profit*interval<<" $"<<endl;
//Сколько будет выплачено
cout<<"Итого к выплате: "<<(profit*interval)+deposit<<" $"<<endl;
К сожалению, не знаю, как добавлять код в специальную форму, как делаете вы, так что про скопирую. Делаю только первые шаги в программировании, выбрал с++ как сложный, фундаментальный, а главное интересный язык. Надеюсь, что огонек интереса не потухнет на сложностях, и я научусь делать что-то действительно полезное. P.S У меня, кстати по данным 1000 usd через 12 месяцев получается ровно 1050. Ставка то, годовая, и количество дней в году тут роли не играет совсем, по крайней мере, в условии такого не сказано. С удовольствием выслушаю любые замечания и предложения по листингу.
#include using namespace std;
int main() { setlocale(LC_ALL, “rus”); float sumOfDeposite; int termOfSave; cout << "Введите сумму, которую вы хотите положить на депозит, usd" <> sumOfDeposite; cout << "Введите срок депозита (месяцев)" <> termOfSave;
Первое задание делается легко с помощью цикла:
#include
using namespace std;
int main ()
{
setlocale(LC_ALL, "Russian");
cout << a;
for (int i = 0; i < 4; i++)
{
cout << a % 10;
a /= 10;
}
cout << endl;
system("pause");
return 0;
}
#include
using namespace std;
int main ()
{
int a;
setlocale(LC_ALL, “Russian”);
cin>> a;
for (int i = 0; i < 4; i++)
{
cout << a % 10;
a /= 10;
}
cout << endl;
system("pause");
return 0;
}
Немного переделал код задачки №1…нам ведь не просто надо по одной, на оборот вывести на экран цифры числа, а перевернуть число чтобы можно было им дальше пользоваться…если конечно правильно понял.
Мой вариант решения задач
#include
#include
#define line cout << "---------------------------------------" << endl
#define taskcls system("cls");
using namespace std;
int main()
{
setlocale(0, "russian");
/* 1 задача */
cout << "1 задача" << endl;
int enteredNumber;
cout << enteredNumber; // вводим число
if(enteredNumber >= 10000) // проверка числа на четырехзначность
{
cout << "Введенное значение не является четырехзначным!\n";
cout << enteredNumber;
}
int temp1, temp2, temp3, temp4;
temp1 = enteredNumber % 10;
temp2 = enteredNumber / 10 % 10;
temp3 = enteredNumber / 100 % 10;
temp4 = enteredNumber / 1000 % 10;
cout << "Число в обратно порядке: " << temp1 << temp2 << temp3 << temp4;
cout << endl;
system("pause");
taskcls;
/* 2 задача */
cout << "2 задача" << endl;
double deposit, profit;
int months;
cout << deposit;
taskcls;
cout << months;
taskcls;
profit = deposit * (5.0 / 100.0) / 365.0 * 30.0;
cout << "Прибыль в месяц, при депозите в " << deposit << " USD составит: " << profit << " USD\n";
profit *= months; // проценты
line;
cout << "Проценты: " << profit << endl;
line;
cout << "Общая прибыль: " << deposit + profit;
_getch();
return 0;
}
#include
using namespace std;
int main()
{ setlocale(0, "");
double sum_depozita = 0;
double month = 0;
const double prozent_stavk = 7;
const double day_in_gody = 365;
double day_in_month;
cout << sum_depozita;
cout << month;
cout << day_in_month;
double deneg_in_month = sum_depozita * (prozent_stavk / 100) / day_in_gody * day_in_month;
cout <<"Денег в месяц: " << deneg_in_month << endl;
double deneg_vsego = deneg_in_month * month;
cout <<"Всего за все месяцы денег: " << deneg_vsego << endl;
return 0;
}
Блин, первый коммент можете удалить.
Я не знаю почему или так и должно быть но ваш код считает что если сумма вложения 100$, а процент в год 100% и срок 12 получется прибыль 98$.
Я вот сделал, посмотрите у меня получется все верно!
#include
using namespace std;
int main()
{
int sum, a, b, c, e;
cout <> sum ;
a = sum / 1000;
b = (sum – a * 1000 )/ 100;
c = (sum – a * 1000 – b * 100 ) / 10;
e = (sum – a * 1000 – b * 100 – c * 10 ) / 1;
cout << e << c << b << a << endl;
return 0;
}
К сожалению, не знаю, как добавлять код в специальную форму, как делаете вы, так что про скопирую. Делаю только первые шаги в программировании, выбрал с++ как сложный, фундаментальный, а главное интересный язык. Надеюсь, что огонек интереса не потухнет на сложностях, и я научусь делать что-то действительно полезное.
P.S У меня, кстати по данным 1000 usd через 12 месяцев получается ровно 1050. Ставка то, годовая, и количество дней в году тут роли не играет совсем, по крайней мере, в условии такого не сказано. С удовольствием выслушаю любые замечания и предложения по листингу.
#include
using namespace std;
int main()
{
setlocale(LC_ALL, “rus”);
float sumOfDeposite;
int termOfSave;
cout << "Введите сумму, которую вы хотите положить на депозит, usd" <> sumOfDeposite;
cout << "Введите срок депозита (месяцев)" <> termOfSave;
float profitPerMonth, allProfit, maxSum, depRate = 0.05;
profitPerMonth = sumOfDeposite * depRate;
profitPerMonth /= 12;
cout << "Ваша прибыль: " << profitPerMonth << " usd в месяц " << endl;
allProfit = profitPerMonth * termOfSave;
cout << "Прибыль за весь срок действия депозита: " << allProfit << " usd " << endl;
maxSum = sumOfDeposite + allProfit;
cout << "Общая сумма через " << termOfSave << " месяцев(a): " << maxSum << " usd " << endl;
system ("pause");
return 0;
}
вроде так легче :D
#include
using namespace std;
int main(){
long long int number = 0;
cout <> number; // вводим цифру
do{
cout << number % 10 << " ";
number = number / 10;
} while (number % 10 != 0);
system("pause");
return 0;
}