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% годовых. Формула розрахунку відсотків на місяць– SummaDepozita * (ПроцентнаяСтавка / 100) / ДнейВГоду * ДнейВМесяце.
Не потрібно довбати теорію… А потрібно завдання вирішувати, вирішувати і вирішувати. А якщо “нічого” не виходить, то потрібно конкретно задавати питання – що там не виходить.
Сенс в тому, що у вас НЕ число, а символьне зображення числа, рядок символів. І в цьому випадку рішення правильне.
Але якщо число буде вводитися, та ще й як рядок, а, например, обчислюватися, то ось тут вже такий підхід не працює.
Це рішення реально крутіше і компактніше. тільки добре, якби користувачеві прям при виконанні надавали можливість ввести число, типу: …… голець номер[ ] = “0”; cin>>number; …… cout << "Это же число в обратном порядке: " << number[3] << number[2] << number[1] << number[0] << endl; ……
[код] int main() { setlocale(LC_ALL, “rus”); int a = 0; cout <> a; INT B = 10; ІНТ з = а % b; INT D = A / b; INT д е = % b; INT F = d / b; INT G = F % b; ІНТ ч = е / b; cout << "в обратном порядке цифры из которых сосотит это число – " <<c<<е<<г<<годину<< endl; cout << "\n"; return 0;
} [/код]
#include
using namespace std; int main() { setlocale(LC_ALL,”rus”); int first = 5678; INT другий = 3087; cout << " результат " << first + second << endl;
формула, яка формує нове число X:
X = * 10 + (a % 10), де – вихідне число.
#include
using namespace std;
int main() {
int x = 5678;
int reverse_x = 0;
while (x) {
reverse_x = reverse_x * 10 + x % 10;
x /= 10;
}
cout << reverse_x << endl;
return 0;
}
А у мене нічого не виходить я нічого не поннял просто
я не знаю скільки треба довбати теорію
//—————————————————————————
#include
#прагма hdrstop
#include
#include
#include
//—————————————————————————
using namespace std;
#прагма argsused
INT _tmain(INT ARGC, _TCHAR * ARGV[])
{
double sum, res, srok;
cout<<"5% prozentna stavka v RIK!!!"<<endl;
cout<>sum;
cout<>srok;
Рез = сума * 0,05 *(srok / 12);
cout<<"Zarobitok za vesy termin = "<<res<<"$"<<endl;
cout<<"Zarobitok za misyaz = "<<res / srok<<"$"<<endl;
cout<<"Zarobitok za misyaz = "<<Рез + сума<<"$"<<endl;
system("pause");
return 0;
}
//—————————————————————————
Не потрібно довбати теорію…
А потрібно завдання вирішувати, вирішувати і вирішувати.
А якщо “нічого” не виходить, то потрібно конкретно задавати питання – що там не виходить.
P.S. Обговорювати тут деталі незручно (через движка), але можна на форумі:
http://rus-linux.net/forum/viewforum.php?f=31
#include
using namespace std;
int main()
{
char number[] = "5678";
setlocale(LC_ALL, "rus");
cout << "Данное число: " << number << endl;
cout << "Это же число в обратном порядке: " << number[3] << number[2] << number[1] << number[0] << endl;
system("pause");
return 0;
}
Мені таке рішення більше подобається)
Або сенс був у тому, щоб виконати за допомогою ділення по модулю?
Сенс в тому, що у вас НЕ число, а символьне зображення числа, рядок символів. І в цьому випадку рішення правильне.
Але якщо число буде вводитися, та ще й як рядок, а, например, обчислюватися, то ось тут вже такий підхід не працює.
Це рішення реально крутіше і компактніше.
тільки добре, якби користувачеві прям при виконанні надавали можливість ввести число, типу:
……
голець номер[ ] = “0”;
cin>>number;
……
cout << "Это же число в обратном порядке: " << number[3] << number[2] << number[1] << number[0] << endl;
……
[код]
int main()
{
setlocale(LC_ALL, “rus”);
int a = 0;
cout <> a;
INT B = 10;
ІНТ з = а % b;
INT D = A / b;
INT д е = % b;
INT F = d / b;
INT G = F % b;
ІНТ ч = е / b;
cout << "в обратном порядке цифры из которых сосотит это число – " <<c<<е<<г<<годину<< endl;
cout << "\n";
return 0;
}
[/код]
#include
using namespace std;
int main()
{
setlocale(LC_ALL,”rus”);
int first = 5678;
INT другий = 3087;
cout << " результат " << first + second << endl;
system("pause");
return 0;
}
як міг
Моє рішення першого завдання.
Працює з різною кількістю знаків в числі.
unsigned int iNumber(0);
unsigned int iCurrent_digit;
unsigned int iNumber_temp;
int iBit (0);
cout <> iNumber)
{
if (iNumber >= 1 && iNumber <= 4294967295) break;
else cerr << "\nЧисло не из указанного диапазона. Введите ещё раз\n";
}
cout < 0; iBit++)
{
iNumber_temp = iNumber_temp / 10;
}
// Выводим числа в обратном порядке
for ( ; iBit > 0 ; iBit--)
{
iCurrent_digit = iNumber % 10;
if (iCurrent_digit == 0) break;
cout << iCurrent_digit;
iNumber /= 10;
}
дивно, але парсер обрубав частина коду і з дужками і << попрацював. Журбинка.
Ця проблема вже вирішена. Додавайте код в коментарі між code і / code в квадратних дужках
Вирішення першого завдання,як варіант.
[код]
#include
#include
#include
using namespace std;
int main()
{
setlocale(LC_ALL, “rus”);
int a = 5678;
int b;
cout << "Данное число: " << a << endl;
cout << "Число наоборот: " ;
for (int i(0); i < 4 ; i )
{
б = (%(int)(бух(10,+ 1)))/(int)бух(10,i);
cout << b;
}
_getch();
return 0;
}
[/код]
Як ділити по модулю я чесно кажучи не здогадався .
Але з розрахунком депозиту ніби як зробив ще простіше =)
Задано ціле число A. Перевірити істинність висловлення: «Число
A є непарним та негативним» Как сжелать этот код в с ++?