From 0cb03e07884fd648d569c00d4cd8f035f217c6cd Mon Sep 17 00:00:00 2001 From: sbelyov <51666176+sbelyov@users.noreply.github.com> Date: Tue, 11 Jun 2019 22:22:37 +0500 Subject: [PATCH] Add files via upload --- 1.3.Step12.cpp | 35 +++++++ 1.3.Step15.cpp | 32 ++++++ 1.3.Step16.cpp | 29 ++++++ 1.4.Step10.cpp | 43 ++++++++ 1.4.Step11.cpp | 35 +++++++ 1.4.Step12.cpp | 39 ++++++++ 1.4.Step13.cpp | 32 ++++++ 1.4.Step14.cpp | 63 ++++++++++++ 1.4.Step15.cpp | 74 ++++++++++++++ 1.4.Step16.cpp | 80 +++++++++++++++ 1.4.Step3.cpp | 34 +++++++ 1.4.Step4.cpp | 31 ++++++ 1.4.Step5.cpp | 30 ++++++ 1.4.Step6.cpp | 32 ++++++ 1.4.Step7.cpp | 31 ++++++ 1.4.Step8.cpp | 31 ++++++ 1.4.Step9.cpp | 60 ++++++++++++ 1.5.Step10.cpp | 56 +++++++++++ 1.5.Step11.cpp | 44 +++++++++ 1.5.Step12.cpp | 37 +++++++ 1.5.Step13.cpp | 34 +++++++ 1.5.Step14.cpp | 52 ++++++++++ 1.5.Step15.cpp | 55 +++++++++++ 1.5.Step16.cpp | 39 ++++++++ 1.5.Step3.cpp | 30 ++++++ 1.5.Step4.cpp | 41 ++++++++ 1.5.Step5.cpp | 29 ++++++ 1.5.Step6.cpp | 40 ++++++++ 1.5.Step7.cpp | 40 ++++++++ 1.5.Step8.cpp | 35 +++++++ 1.5.Step9.cpp | 34 +++++++ 1.6.Step10.cpp | 42 ++++++++ 1.6.Step11.cpp | 43 ++++++++ 1.6.Step12.cpp | 47 +++++++++ 1.6.Step13.cpp | 25 +++++ 1.6.Step14.cpp | 93 ++++++++++++++++++ 1.6.Step3.cpp | 25 +++++ 1.6.Step4.cpp | 20 ++++ 1.6.Step5.cpp | 28 ++++++ 1.6.Step6.cpp | 31 ++++++ 1.6.Step7.cpp | 31 ++++++ 1.6.Step8.cpp | 26 +++++ 1.6.Step9.cpp | 33 +++++++ 1.7.Step3.cpp | 41 ++++++++ 1.7.Step4.cpp | 31 ++++++ 1.7.Step5.cpp | 32 ++++++ 1.7.Step6.cpp | 32 ++++++ 1.7.Step7.cpp | 36 +++++++ Stepik_IntroCpp.sln | 31 ++++++ Stepik_IntroCpp.vcxproj | 168 ++++++++++++++++++++++++++++++++ Stepik_IntroCpp.vcxproj.filters | 30 ++++++ Stepik_IntroCpp.vcxproj.user | 6 ++ pch.cpp | 5 + pch.h | 14 +++ 54 files changed, 2147 insertions(+) create mode 100644 1.3.Step12.cpp create mode 100644 1.3.Step15.cpp create mode 100644 1.3.Step16.cpp create mode 100644 1.4.Step10.cpp create mode 100644 1.4.Step11.cpp create mode 100644 1.4.Step12.cpp create mode 100644 1.4.Step13.cpp create mode 100644 1.4.Step14.cpp create mode 100644 1.4.Step15.cpp create mode 100644 1.4.Step16.cpp create mode 100644 1.4.Step3.cpp create mode 100644 1.4.Step4.cpp create mode 100644 1.4.Step5.cpp create mode 100644 1.4.Step6.cpp create mode 100644 1.4.Step7.cpp create mode 100644 1.4.Step8.cpp create mode 100644 1.4.Step9.cpp create mode 100644 1.5.Step10.cpp create mode 100644 1.5.Step11.cpp create mode 100644 1.5.Step12.cpp create mode 100644 1.5.Step13.cpp create mode 100644 1.5.Step14.cpp create mode 100644 1.5.Step15.cpp create mode 100644 1.5.Step16.cpp create mode 100644 1.5.Step3.cpp create mode 100644 1.5.Step4.cpp create mode 100644 1.5.Step5.cpp create mode 100644 1.5.Step6.cpp create mode 100644 1.5.Step7.cpp create mode 100644 1.5.Step8.cpp create mode 100644 1.5.Step9.cpp create mode 100644 1.6.Step10.cpp create mode 100644 1.6.Step11.cpp create mode 100644 1.6.Step12.cpp create mode 100644 1.6.Step13.cpp create mode 100644 1.6.Step14.cpp create mode 100644 1.6.Step3.cpp create mode 100644 1.6.Step4.cpp create mode 100644 1.6.Step5.cpp create mode 100644 1.6.Step6.cpp create mode 100644 1.6.Step7.cpp create mode 100644 1.6.Step8.cpp create mode 100644 1.6.Step9.cpp create mode 100644 1.7.Step3.cpp create mode 100644 1.7.Step4.cpp create mode 100644 1.7.Step5.cpp create mode 100644 1.7.Step6.cpp create mode 100644 1.7.Step7.cpp create mode 100644 Stepik_IntroCpp.sln create mode 100644 Stepik_IntroCpp.vcxproj create mode 100644 Stepik_IntroCpp.vcxproj.filters create mode 100644 Stepik_IntroCpp.vcxproj.user create mode 100644 pch.cpp create mode 100644 pch.h diff --git a/1.3.Step12.cpp b/1.3.Step12.cpp new file mode 100644 index 0000000..4e22ff4 --- /dev/null +++ b/1.3.Step12.cpp @@ -0,0 +1,35 @@ +/* + 1.3 . 12 + + + h : mm:ss( 0:00 : 00 23 : 59 : 59), + , , + . + . + + N ., . + + : + N, 107 (10000000). + + : + . + + Sample Input 1: 3602 + Sample Output 1: 1 : 00 : 02 + Sample Input 2 :129700 + Sample Output 2 : 12 : 01 : 40 +*/ +#include + +using namespace std; + +int main() { + int n; + while (true) + { + cin >> n; + cout << n / 3600 % 24 << ':' << n / 60 % 60 / 10 << n / 60 % 10 << ":" << n % 60 / 10 << n % 60 % 10; + } + return 0; +} \ No newline at end of file diff --git a/1.3.Step15.cpp b/1.3.Step15.cpp new file mode 100644 index 0000000..92a4b53 --- /dev/null +++ b/1.3.Step15.cpp @@ -0,0 +1,32 @@ +/* + 1.3 Целые числа. Шаг 15 + + Симметричное число + Дано четырехзначное число.Определите, является ли его десятичная запись симметричной.Если число симметричное, то выведите 1, + иначе выведите любое другое целое число.Число может иметь меньше четырех знаков, тогда нужно считать, + что его десятичная запись дополняется слева незначащими нулями. + + Формат входных данных: + Вводится единственное число. + + Формат выходных данных: + Выведите одно целое число - ответ на задачу. + + Sample Input 1: 2002 + Sample Output 1: 1 + Sample Input 2: 2008 + Sample Output 2: 37 +*/ +#include + +using namespace std; + +int main(){ + int n; + while (true) + { + cin >> n; + cout << 1 + n / 100 - (n % 10) * 10 - (n % 100) / 10 << endl; + } + return 0; +} \ No newline at end of file diff --git a/1.3.Step16.cpp b/1.3.Step16.cpp new file mode 100644 index 0000000..6d452d3 --- /dev/null +++ b/1.3.Step16.cpp @@ -0,0 +1,29 @@ +/* + 1.3 Целые числа. Шаг 16 + + Улитка + Улитка ползет по вертикальному шесту высотой H метров, поднимаясь за день на A метров, + а за ночь спускаясь на B метров. На какой день улитка доползет до вершины шеста? + + Формат входных данных: + Программа получает на вход целые неотрицательные числа H, A, B, причем H > B. Числа не превосходят 100. + + Формат выходных данных: + Программа должна вывести одно натуральное число. Гарантируется, что A > B. + + Sample Input: 10 3 2 + Sample Output: 8 +*/ +#include + +using namespace std; + +int main(){ + int h, a, b; + while (true) + { + cin >> h >> a >> b; + cout << 1 + (h - b - 1) / (a - b) << endl; //вычисляем дни с округлением вверх: 1+((h-a)+(a-b)-1)/(a-b) + } + return 0; +} \ No newline at end of file diff --git a/1.4.Step10.cpp b/1.4.Step10.cpp new file mode 100644 index 0000000..e666ee2 --- /dev/null +++ b/1.4.Step10.cpp @@ -0,0 +1,43 @@ +/* + 1.4 . 10 + + . , , + . + + : + 1 8 , + , . + : + YES, + NO . + Sample Input: 4 4 5 5 + Sample Output: YES +*/ +#include + +using namespace std; + +int main() { + while (true) { + int x1, x2, y1, y2; + cin >> x1 >> y1 >> x2 >> y2; + /* + int r; + r = x1 * 10 + y1 - x2 * 10 - y2; + if (r % 9 == 0 || r % 11 == 0) { + cout << "YES"; + } else { + cout << "NO"; + }*/ + + int x, y; + x = (x1 - x2); + y = (y1 - y2); + if (x * x == y * y) { + cout << "YES"; + } else { + cout << "NO"; + } + } + return 0; +} \ No newline at end of file diff --git a/1.4.Step11.cpp b/1.4.Step11.cpp new file mode 100644 index 0000000..5049432 --- /dev/null +++ b/1.4.Step11.cpp @@ -0,0 +1,35 @@ +/* + 1.4 . 11 + + , . + , , + . + + + 1 8 , + , . + + YES, + NO . + Sample Input 1: 1 1 2 2 + Sample Output 1: YES +*/ +#include + +using namespace std; + +int main() { + while (true) { + int x1, x2, y1, y2; + cin >> x1 >> y1 >> x2 >> y2; + int x, y; + x = x1 - x2; + y = y1 - y2; + if (x * x == y * y || x1 == x2 || y1 == y2) { + cout << "YES"; + } else { + cout << "NO"; + } + } + return 0; +} \ No newline at end of file diff --git a/1.4.Step12.cpp b/1.4.Step12.cpp new file mode 100644 index 0000000..2dda47f --- /dev/null +++ b/1.4.Step12.cpp @@ -0,0 +1,39 @@ +/* + 1.4 . 12 + + Ô + , . , + , . + + + 1 8 , + , . + + YES, + NO . + Sample Input 1: 1 1 1 4 + Sample Output 1: NO + Sample Input 2: 1 1 8 8 + Sample Output 2: NO +*/ +#include + +using namespace std; + +int main() { + while (true) { + int x1, x2, y1, y2; + cin >> x1 >> y1 >> x2 >> y2; + int x, y; + x = x1 - x2; + y = y1 - y2; + x *= x; + y *= y; + if (x + y == 5) { + cout << "YES"; + } else { + cout << "NO"; + } + } + return 0; +} \ No newline at end of file diff --git a/1.4.Step13.cpp b/1.4.Step13.cpp new file mode 100644 index 0000000..9142890 --- /dev/null +++ b/1.4.Step13.cpp @@ -0,0 +1,32 @@ +/* + 1.4 Условный оператор. Шаг 13 + + Шоколадка имеет вид прямоугольника, разделенного на N×M долек. + Шоколадку можно один раз разломить по прямой на две части. + Определите, можно ли таким образом отломить от шоколадки ровно K долек. + + Формат входных данных: + Программа получает на вход три числа: N, M, K + Формат выходных данных: + Программа должна вывести одно из двух слов: YES или NO. + Sample Input 1: 4 2 6 + Sample Output 1: YES + Sample Input 2: 2 10 7 + Sample Output 2: NO +*/ +#include + +using namespace std; + +int main() { + while (true) { + int n, m, k; + cin >> n >> m >> k; + if (n * m >= k && (k % n == 0 || k % m == 0)) { + cout << "YES"; + } else { + cout << "NO"; + } + } + return 0; +} \ No newline at end of file diff --git a/1.4.Step14.cpp b/1.4.Step14.cpp new file mode 100644 index 0000000..aca1bd1 --- /dev/null +++ b/1.4.Step14.cpp @@ -0,0 +1,63 @@ +/* + 1.4 Условный оператор. Шаг 13 + + Яша плавал в бассейне размером N×M метров и устал. В этот момент он обнаружил, + что находится на расстоянии X метров от одного из длинных бортиков (не обязательно от ближайшего) и + Y метров от одного из коротких бортиков. Какое минимальное расстояние должен проплыть Яша, + чтобы выбраться из бассейна на бортик? + + Формат входных данных: + Программа получает на вход числа N, M, X, Y. + Формат выходных данных: + Программа должна вывести число метров, которое нужно проплыть Яше до бортика. + + Sample Input: 23 52 8 43 + Sample Output: 8 +*/ +#include + +using namespace std; + +int main() { + while (true) { + int n, m, x, y; + cin >> n >> m >> x >> y; + /* + if (n > m) { + int tmp; + tmp = m; + m = n; + n = tmp; + } + int min = 0; + if ((n - x) < x) { + min = n - x; + } else { + min = x; + } + if ((m - y) < min) { + min = m - y; + } else if (y < min) { + min = y; + } + cout << min << endl << endl; + */ + if (n > m) { + n = n + m; + m = n - m; + n = n - m; + } + if (2 * x > n) { + x = n - x; + } + if (2 * y > m) { + y = m - y; + } + if (x < y) { + cout << x; + } else { + cout << y; + } + } + return 0; +} \ No newline at end of file diff --git a/1.4.Step15.cpp b/1.4.Step15.cpp new file mode 100644 index 0000000..472632d --- /dev/null +++ b/1.4.Step15.cpp @@ -0,0 +1,74 @@ +/* + 1.4 Условный оператор. Шаг 15 + + Дано три числа. Упорядочите их в порядке неубывания. + + Формат входных данных: + Вводятся три числа. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: 1 2 1 + Sample Output: 1 1 2 +*/ +#include + +using namespace std; + +int main() { + while (true) { + int a, b, c; + cin >> a >> b >> c; + /* + int tmp = 0; + if (a > b) { + tmp = a; + a = b; + b = tmp; + } + if (a > c) { + tmp = a; + a = c; + c = tmp; + } + if (b > c) { + tmp = b; + b = c; + c = tmp; + } + */ + /* + if (a > b) { + a = a + b; + b = a - b; + a = a - b; + } + if (a > c) { + a = a + c; + c = a - c; + a = a - c; + } + if (b > c) { + b = b + c; + c = b - c; + b = b - c; + } + */ + if (a > b) { + a += b; + b = a - b; + a += -b; + } + if (a > c) { + a += c; + c = a - c; + a += -c; + } + if (b > c) { + b += c; + c = b - c; + b += -c; + } + cout << a << " " << b << " " << c; + } + return 0; +} \ No newline at end of file diff --git a/1.4.Step16.cpp b/1.4.Step16.cpp new file mode 100644 index 0000000..57d5674 --- /dev/null +++ b/1.4.Step16.cpp @@ -0,0 +1,80 @@ +/* + 1.4 Условный оператор. Шаг 16 + + Есть две коробки, первая размером A1×B1×C1, вторая размером A2×B2×C2. + Определите, можно ли разместить одну из этих коробок внутри другой, при условии, + что поворачивать коробки можно только на 90 градусов вокруг ребер. + + Формат входных данных: + Программа получает на вход числа A1, B1, C1, A2, B2, C2. + + Формат выходных данных: + Программа должна вывести одну из следующих строчек: + Boxes are equal, если коробки одинаковые, + The first box is smaller than the second one, если первая коробка может быть положена во вторую, + The first box is larger than the second one, если вторая коробка может быть положена в первую, + Boxes are incomparable, во всех остальных случаях. + + Sample Input 1: 1 2 3 3 2 1 + Sample Output 1: Boxes are equal + Sample Input 2: 2 2 3 3 2 1 + Sample Output 2: The first box is larger than the second one +*/ +#include + +using namespace std; + +int main() { + while (true) { + int a1, b1, c1, a2, b2, c2; + cin >> a1 >> b1 >> c1 >> a2 >> b2 >> c2; + //упорядочивание по сторонам первой коробки + if (a1 > b1) { + a1 += b1; + b1 = a1 - b1; + a1 += -b1; + } + if (a1 > c1) { + a1 += c1; + c1 = a1 - c1; + a1 += -c1; + } + if (b1 > c1) { + b1 += c1; + c1 = b1 - c1; + b1 += -c1; + } + //упорядочивание по сторонам второй коробки + if (a2 > b2) { + a2 += b2; + b2 = a2 - b2; + a2 += -b2; + } + if (a2 > c2) { + a2 += c2; + c2 = a2 - c2; + a2 += -c2; + } + if (b2 > c2) { + b2 += c2; + c2 = b2 - c2; + b2 += -c2; + } + if (a1 == a2 && b1 == b2 && c1 == c2) { + cout << "Boxes are equal"; + } else { + if (a1 <= a2 && b1 <= b2 && c1 <= c2) { + cout << "The first box is smaller than the second one"; + } + else { + if (a1 >= a2 && b1 >= b2 && c1 >= c2) { + cout << "The first box is larger than the second one"; + } + else { + cout << "Boxes are incomparable"; + } + } + } + } + return 0; +} \ No newline at end of file diff --git a/1.4.Step3.cpp b/1.4.Step3.cpp new file mode 100644 index 0000000..b7991b4 --- /dev/null +++ b/1.4.Step3.cpp @@ -0,0 +1,34 @@ +/* + 1.4 . 3 + + . . , . + + : + . + + : + . + + Sample Input 1: 1 2 + Sample Output 1: 2 + Sample Input 2: 5 3 + Sample Output 2: 5 +*/ +#include + +using namespace std; + +int main() { + int a, b; + while (true) { + cin >> a >> b; + if (a > b) { + cout << a << endl; + cout << endl; + } + else { + cout << b << endl; + cout << endl; + } + } +} \ No newline at end of file diff --git a/1.4.Step4.cpp b/1.4.Step4.cpp new file mode 100644 index 0000000..d4e4d35 --- /dev/null +++ b/1.4.Step4.cpp @@ -0,0 +1,31 @@ +/* + 1.4 . 4 + + . , , + , , , . + + : + . + : + . + + Sample Input: 1 2 + Sample Output:2 +*/ +#include + +using namespace std; + +int main() { + int a, b; + while (true) { + cin >> a >> b; + if (a > b) { + cout << 1 << endl << endl; + } else if (a < b) { + cout << 2 << endl << endl; + } else { + cout << 0 << endl << endl; + } + } +} \ No newline at end of file diff --git a/1.4.Step5.cpp b/1.4.Step5.cpp new file mode 100644 index 0000000..403cafb --- /dev/null +++ b/1.4.Step5.cpp @@ -0,0 +1,30 @@ +/* + 1.4 . 5 + + . ( ). + , , . + + : + . + : + . + Sample Input: 1 2 3 + Sample Output: 3 +*/ +#include + +using namespace std; + +int main() { + int a, b, c; + while (true) { + cin >> a >> b >> c; + if (a < b) { + a = b; + } + if (a < c) { + a = c; + } + cout << a << endl << endl; + } +} \ No newline at end of file diff --git a/1.4.Step6.cpp b/1.4.Step6.cpp new file mode 100644 index 0000000..e8bbc6a --- /dev/null +++ b/1.4.Step6.cpp @@ -0,0 +1,32 @@ +/* + 1.4 . 6 + + A, B, C. , . , + YES, NO. , . + + : + . + : + . + +Sample Input: 3 4 5 +Sample Output: YES +*/ +#include + +using namespace std; + +int main() { + while (true) { + int a, b, c; + cin >> a >> b >> c; + if (b + c > a && b - c < a && + a + c > b && a - c < b && + a + b > c && a - b < c) { + cout << "YES"; + } else { + cout << "NO"; + } + } + return 0; +} \ No newline at end of file diff --git a/1.4.Step7.cpp b/1.4.Step7.cpp new file mode 100644 index 0000000..11ff751 --- /dev/null +++ b/1.4.Step7.cpp @@ -0,0 +1,31 @@ +/* + 1.4 . 7 + + . , . : + 3 ( ), 2 ( ) 0 ( ). + + : + . + : + . + Sample Input: 1 2 3 + Sample Output: 0 +*/ +#include + +using namespace std; + +int main() { + while (true) { + int a, b, c; + cin >> a >> b >> c; + if (a != b && a != c && b != c) { + cout << "0"; + } else if (a == b && b == c) { + cout << "3"; + } else { + cout << "2"; + } + } + return 0; +} \ No newline at end of file diff --git a/1.4.Step8.cpp b/1.4.Step8.cpp new file mode 100644 index 0000000..a198300 --- /dev/null +++ b/1.4.Step8.cpp @@ -0,0 +1,31 @@ +/* + 1.4 . 8 + + . , , + . + + : + 1 8 , , + . + : + YES, NO . + Sample Input: 4 4 5 5 + Sample Output: NO +*/ +#include + +using namespace std; + +int main() { + while (true) { + int x1, x2, y1, y2; + cin >> x1 >> y1 >> x2 >> y2; + if (x1 == x2 || y1 == y2) { + cout << "YES"; + } + else { + cout << "NO"; + } + } + return 0; +} \ No newline at end of file diff --git a/1.4.Step9.cpp b/1.4.Step9.cpp new file mode 100644 index 0000000..4f1886f --- /dev/null +++ b/1.4.Step9.cpp @@ -0,0 +1,60 @@ +/* + 1.4 . 9 + + , , 1 . + , , . + + : + 1 8 , , + . + : + YES, NO . + Sample Input: 4 4 5 5 + Sample Output: YES +*/ +#include + +using namespace std; + +int main() { + while (true) { + int x1, x2, y1, y2; + cin >> x1 >> y1 >> x2 >> y2; + /* + if (-1 <= (x1 - x2) && 1 >= (x1 - x2) && + -1 <= (y1 - y2) && 1 >= (y1 - y2)) { + cout << "YES"; + } else { + cout << "NO"; + }*/ + + /* + bool x = -1 <= (x1 - x2) && 1 >= (x1 - x2); + bool y = -1 <= (y1 - y2) && 1 >= (y1 - y2); + if (x && y) { + cout << "YES"; + } else { + cout << "NO"; + }*/ + + /* + int x, y; + x = x1 - x2; + y = y1 - y2; + if (-1 <= x && 1 >= x && + -1 <= y && 1 >= y) { + cout << "YES"; + } else { + cout << "NO"; + }*/ + + int x, y; + x = x1 - x2; + y = y1 - y2; + if (x * x > 1 || y * y > 1) + cout << "NO"; + else + cout << "YES"; + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step10.cpp b/1.5.Step10.cpp new file mode 100644 index 0000000..95c23a0 --- /dev/null +++ b/1.5.Step10.cpp @@ -0,0 +1,56 @@ +/* + 1.5 Цикл while. Шаг 10 + + Последовательность состоит из натуральных чисел и завершается числом 0. + Определите, какое количество элементов этой последовательности, равны ее наибольшему элементу. + + Формат входных данных: + Вводится непустая последовательность целых чисел, оканчивающаяся числом 0 + (само число 0 в последовательность не входит, а служит как признак ее окончания). + Формат выходных данных: + Выведите ответ на задачу. + Sample Input 1: + 1 + 7 + 9 + 0 + Sample Output 1: + 1 + Sample Input 2: + 1 + 3 + 3 + 1 + 0 + Sample Output 2: + 2 +*/ +#include + +int main() { + while (true) { + int n, max = 0, c = 0; + /*while (true) { + std::cin >> n; + if (n == 0) break; + if (n > max) { + max = n; + c = 0; + } + if (n == max) { + c++; + } + }*/ + while (std::cin >> n && n) { + if (n > max) { + max = n; + c = 0; + } + if (n == max) { + c++; + } + } + std::cout << c; + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step11.cpp b/1.5.Step11.cpp new file mode 100644 index 0000000..008e59a --- /dev/null +++ b/1.5.Step11.cpp @@ -0,0 +1,44 @@ +/* + 1.5 Цикл while. Шаг 11 + + Последовательность состоит из натуральных чисел и завершается числом 0. + Определите значение второго по величине элемента в этой последовательности, то есть элемента, + который будет наибольшим, если из последовательности удалить наибольший элемент. + + Формат входных данных: + Вводится последовательность целых чисел, оканчивающаяся числом 0 (само число 0 в последовательность не входит, + а служит как признак ее окончания). + Формат выходных данных: + Выведите ответ на задачу. + Sample Input 1: + 4 + 4 + 2 + 3 + 0 + Sample Output 1: + 4 + Sample Input 2: + 2 + 1 + 0 + Sample Output 2: + 1 +*/ +#include + +int main() { + while (true) { + int n, max1 = 0, max2 = 0; + while (std::cin >> n && n) { + if (n >= max1) { + max2 = max1; + max1 = n; + } else if (n > max2) { + max2 = n; + } + } + std::cout << max2; + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step12.cpp b/1.5.Step12.cpp new file mode 100644 index 0000000..76c5ec3 --- /dev/null +++ b/1.5.Step12.cpp @@ -0,0 +1,37 @@ +/* + 1.5 Цикл while. Шаг 12 + + Последовательность Фибоначчи определяется так: + F(0) = 0, F(1) = 1, …, F(n) = F(n−1) + F(n−2). + По данному числу N определите N-е число Фибоначчи F(N). + + Формат входных данных: + Вводится натуральное число N. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: 6 (0 1 1 2 3 5 8 13 21 34 55) + Sample Output: 8 +*/ +#include + +int main() { + while (true) { + int n, i = 3, f = 1, fn = 1; + std::cin >> n; + while (i <= n) { + fn += f; + f = fn - f; + i++; + } + std::cout << fn; + /*int a = 0, b = 1, i; + std::cin >> i; + while (i > 0) { + b += a; + a = b - a; + i--; + } + std::cout << a;*/ + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step13.cpp b/1.5.Step13.cpp new file mode 100644 index 0000000..73fa5e5 --- /dev/null +++ b/1.5.Step13.cpp @@ -0,0 +1,34 @@ +/* + 1.5 Цикл while. Шаг 13 + + Последовательность Фибоначчи определяется так: + F(0) = 0, F(1) = 1, …, F(n) = F(n−1) + F(n−2). + Дано натуральное число A. Определите, каким по счету числом Фибоначчи оно является, + то есть выведите такое число N, что F(N) = A. Если А не является числом Фибоначчи, выведите число -1. + + Формат входных данных + Вводится натуральное число A > 1. + Формат выходных данных + Выведите ответ на задачу. + Sample Input: 8 + Sample Output: 6 +*/ +#include + +int main() { + while (true) { + int a, i = 1, f = 0, fn = 1; + std::cin >> a; + while (fn < a) { + fn += f; + f = fn - f; + i++; + } + if (fn == a) { + std::cout << i; + } else { + std::cout << -1; + } + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step14.cpp b/1.5.Step14.cpp new file mode 100644 index 0000000..7c34c85 --- /dev/null +++ b/1.5.Step14.cpp @@ -0,0 +1,52 @@ +/* + 1.5 Цикл while. Шаг 14 + + Дана последовательность натуральных чисел, завершающаяся числом 0. + Определите, какое наибольшее число подряд идущих элементов этой последовательности равны друг другу. + Если не нашлось ни одной пары, тройки и т.д. элементов, равных друг другу, то программа должна вывести число 1. + + Формат входных данных: + Вводится последовательность натуральных чисел, оканчивающаяся числом 0 + (само число 0 в последовательность не входит, а служит как признак ее окончания). + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: + 1 + 7 + 7 + 9 + 1 + 0 + Sample Output: + 2 +*/ +#include + +int main() { + while (true) { + int a, b = 0, c1 = 1, c2 = 1; + while (std::cin >> a && a) { + if (a == b) { + c1++; + } else { + b = a; + c1 = 1; + } + if (c1 > c2) { + c2 = c1; + } + } + std::cout << c2; + + /*int n, m, i = 0, j = 0; + cin >> n; + while (n != 0) { + m = n; + while (m == n) cin >> n, i++; + if (i > j) j = i; + i = 0; + } + cout << j;*/ + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step15.cpp b/1.5.Step15.cpp new file mode 100644 index 0000000..21a59ac --- /dev/null +++ b/1.5.Step15.cpp @@ -0,0 +1,55 @@ +/* + 1.5 Цикл while. Шаг 15 + + Элемент последовательности называется локальным максимумом, если он строго больше предыдущего и + последующего элемента последовательности. Первый и последний элемент последовательности не являются локальными максимумами. + + Дана последовательность натуральных чисел, завершающаяся числом 0. + Определите количество строгих локальных максимумов в этой последовательности. + + Формат входных данных: + Вводится последовательность натуральных чисел, оканчивающаяся числом 0 + (само число 0 в последовательность не входит, а служит как признак ее окончания). + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: + 1 + 2 + 1 + 2 + 1 + 0 + Sample Output: + 2 +*/ +#include + +int main() { + while (true) { + int n0, n, max = 0; + bool i = 0; + std::cin >> n; + n0 = n; + while (std::cin >> n && n) { + if (n < n0 && i) { + max++; + } + if (n > n0) { + i = 1; + } else { + i = 0; + } + n0 = n; + } + std::cout << max; + + /*int a = 0, b = 0, c = 0, n; + while (cin >> n && n != 0) { + if (a > 0 && a < b && b > n) + c++; + a = b; b = n; + } + cout << c;*/ + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step16.cpp b/1.5.Step16.cpp new file mode 100644 index 0000000..5c5172c --- /dev/null +++ b/1.5.Step16.cpp @@ -0,0 +1,39 @@ +/* + 1.5 Цикл while. Шаг 16 + + Определите наименьшее расстояние между двумя локальными максимумами последовательности натуральных чисел, + завершающейся числом 0. Если в последовательности нет двух локальных максимумов, выведите число 0. + Начальное и конечное значение при этом локальными максимумами не считаются. + Расстоянием считается количество пробелов между элементами. + В качестве примера смотрите первый тест. + + Формат входных данных: + Вводится последовательность целых чисел, оканчивающаяся числом 0 + (само число 0 в последовательность не входит, а служит как признак ее окончания). + Формат выходных данных: + Выведите ответ на задачу. + Sample Input 1: 1 2 1 1 2 1 2 1 0 + Sample Output 1: 2 + Sample Input 2: 1 2 3 0 + Sample Output 2: 0 +*/ +#include + +int main() { + while (true) { + int a, b, n, i, pos, min; + a = b = i = pos = min = 0; + while (std::cin >> n && n) { + i++; + if (a > 0 && a < b && b > n) { + if (min > (i - pos) || (min == 0 && pos > 0)) + min = i - pos; + pos = i; + } + a = b; + b = n; + } + std::cout << min; + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step3.cpp b/1.5.Step3.cpp new file mode 100644 index 0000000..b412d5a --- /dev/null +++ b/1.5.Step3.cpp @@ -0,0 +1,30 @@ +/* + 1.5 Цикл while. Шаг 3 + + По данному целому числу N распечатайте все квадраты натуральных чисел, не превосходящие N, в порядке возрастания. + + Формат входных данных: + Вводится натуральное число. + Формат выходных данных: + Выведите ответ на задачу. + + Sample Input: 50 + Sample Output: 1 4 9 16 25 36 49 +*/ +#include + +using namespace std; + +int main() { + while (true) { + int n, i = 1; + cin >> n; + while ((i * i) <= n) { + cout << i * i << " "; + i++; + } + //while (++i*i <= n && cout << i*i << " "); + + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step4.cpp b/1.5.Step4.cpp new file mode 100644 index 0000000..1c2bf28 --- /dev/null +++ b/1.5.Step4.cpp @@ -0,0 +1,41 @@ +/* + 1.5 Цикл while. Шаг 4 + + Дано целое число, не меньшее 2. Выведите его наименьший натуральный делитель, отличный от 1. + + Формат входных данных: + Вводится целое положительное число. + Формат выходных данных: + Выведите ответ на задачу. + + Sample Input: 15 + Sample Output: 3 +*/ +#include + +using namespace std; + +int main() { + while (true) { + int n, i = 2; + cin >> n; + /* + while (i <= n) { + if ((n % i) == 0) { + cout << i; + break; + } + i++; + } + */ + + while ((n % i) != 0 && ++i); + cout << i; + + /* + while (n % ++i); + cout << i; + */ + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step5.cpp b/1.5.Step5.cpp new file mode 100644 index 0000000..381d951 --- /dev/null +++ b/1.5.Step5.cpp @@ -0,0 +1,29 @@ +/* + 1.5 Цикл while. Шаг 5 + + По данному числу N распечатайте все целые степени двойки, не превосходящие N, в порядке возрастания. + + Формат входных данных: + Вводится натуральное число. + Формат выходных данных: + Выведите ответ на задачу. + + Sample Input: 50 + Sample Output: 1 2 4 8 16 32 +*/ +#include + +using namespace std; + +int main() { + while (true) { + int n, i = 1; + cin >> n; + + while (i <= n) { + cout << i << " "; + i *= 2; + } + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step6.cpp b/1.5.Step6.cpp new file mode 100644 index 0000000..7c2c25b --- /dev/null +++ b/1.5.Step6.cpp @@ -0,0 +1,40 @@ +/* + 1.5 Цикл while. Шаг 6 + + Дано натуральное число N. Выведите слово YES, если число N является точной степенью двойки, + или слово NO в противном случае. + + Формат входных данных: + Вводится натуральное число. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input 1: 1 + Sample Output 1: YES + Sample Input 2: 2 + Sample Output 2: YES +*/ +#include + +using namespace std; + +int main() { + while (true) { + int n, i = 1; + cin >> n; + while (i < n) { + i *= 2; + } + if (i == n) { + cout << "YES"; + } else { + cout << "NO"; + } + /* + if (n & n - 1) { + cout << "NO"; + } else { + cout << "YES"; + }*/ + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step7.cpp b/1.5.Step7.cpp new file mode 100644 index 0000000..226b00e --- /dev/null +++ b/1.5.Step7.cpp @@ -0,0 +1,40 @@ +/* + 1.5 Цикл while. Шаг 7 + + Программа получает на вход последовательность целых неотрицательных чисел, каждое число записано в отдельной строке. + Последовательность завершается числом 0, при считывании которого программа должна закончить свою работу и + вывести количество членов последовательности (не считая завершающего числа 0). + Числа, следующие за числом 0, считывать не нужно. + + Формат входных данных: + Вводится последовательность целых чисел, заканчивающаяся числом 0. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: + 1 + 7 + 9 + 0 + 5 + Sample Output: 3 +*/ +#include + +using namespace std; + +int main() { + while (true) { + int n, i = 0; + /*while (true) { + cin >> n; + if (n == 0) { + cout << i; + break; + } + i++; + }*/ + while (cin >> n && n && ++i); + cout << i; + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step8.cpp b/1.5.Step8.cpp new file mode 100644 index 0000000..97c7c82 --- /dev/null +++ b/1.5.Step8.cpp @@ -0,0 +1,35 @@ +/* + 1.5 Цикл while. Шаг 8 + + Определите сумму всех элементов последовательности, завершающейся числом 0. + + Формат входных данных: + Вводится последовательность целых чисел, оканчивающаяся числом 0 + (само число 0 в последовательность не входит, а служит как признак ее окончания. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: + 3 + 6 + 8 + 0 + Sample Output: + 17 +*/ +#include + +int main() { + while (true) { + int n, sum = 0; + /*while (true) { + std::cin >> n; + if (n == 0) break; + sum += n; + } + std::cout << sum << endl;*/ + + while (std::cin >> n && n && (sum += n)); + std::cout << sum; + } + return 0; +} \ No newline at end of file diff --git a/1.5.Step9.cpp b/1.5.Step9.cpp new file mode 100644 index 0000000..7d454d5 --- /dev/null +++ b/1.5.Step9.cpp @@ -0,0 +1,34 @@ +/* + 1.5 Цикл while. Шаг 9 + + Последовательность состоит из натуральных чисел и завершается числом 0. + Определите значение наибольшего элемента последовательности. + + Формат входных данных: + Вводится последовательность целых чисел, оканчивающаяся числом 0 + (само число 0 в последовательность не входит, а служит как признак ее окончания). + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: + 1 + 7 + 9 + 0 + Sample Output: + 9 +*/ +#include + +int main() { + while (true) { + int n, max = 0; + //while (std::cin >> n && n && (max = (n > max) ? n : max)); + while (true) { + std::cin >> n; + if (n == 0) break; + if (n > max) max = n; + } + std::cout << max; + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step10.cpp b/1.6.Step10.cpp new file mode 100644 index 0000000..152358e --- /dev/null +++ b/1.6.Step10.cpp @@ -0,0 +1,42 @@ +/* + 1.6 Действительные числа. Шаг 10 + + Дан многочлен P(x)=an*x^n + an−1 * x^n−1+ … + a1*x + a0 и число x. + Вычислите значение этого многочлена, воспользовавшись схемой Горнера: + P(x)=(…(((an*x + an−1)*x + an−2)*x + an−3) … )*x+ a0 + + Формат входных данных: + Сначала программе подается на вход целое неотрицательное число n ≤ 20, затем действительное число x, + затем следует n+1 вещественное число — коэффициенты многочлена от старшего к младшему. + Формат выходных данных: + Программа должна вывести значение многочлена. + Sample Input 1: + 1 + 0.000 + 1.000 + 1.000 + Sample Output 1: 1 + Sample Input 2: + 2 + 0.500 + 1.000 + 1.000 + 1.000 + Sample Output 2: 1.75 +*/ +#include + +int main() { + while (true) { + int n; + double x, a, p = 0; + std::cin >> n >> x; + while ((n + 1) > 0) { + std::cin >> a; + p = p * x + a; + n--; + } + std::cout << p; + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step11.cpp b/1.6.Step11.cpp new file mode 100644 index 0000000..0f72993 --- /dev/null +++ b/1.6.Step11.cpp @@ -0,0 +1,43 @@ +/* + 1.6 Действительные числа. Шаг 11 + + Даны действительные коэффициенты a, b, c, при этом a ≠ 0 . + Решите квадратное уравнение ax2 + bx + c = 0 и выведите все его корни. + + Формат входных данных: + Вводятся три действительных числа. + Формат выходных данных: + Если уравнение имеет два корня, выведите два корня в порядке возрастания, + если один корень — выведите одно число, если нет корней — не выводите ничего. + Sample Input: 1 -1 -2 + Sample Output: -1 2 +*/ +#include +#include + +int main() { + while (true) { + double a, b, c, D, x1, x2; + std::cin >> a >> b >> c; + D = b * b - 4 * a * c; + if (D >= 0) { + x1 = (-b + sqrt(D)) / (2 * a); + x2 = (-b - sqrt(D)) / (2 * a); + if (x2 < x1) + std::cout << x2 << " " << x1; + if (x1 < x2) + std::cout << x1 << " " << x2; + if (x1 == x2) + std::cout << x1; + } + /*при a≠0, уравнение можно привести к виду x^2+px+q=0. Его корни имеют вид −p/2±sqrt((p/2)^2−q) + b /= 2 * a; + c = b * b - c / a; + if (c == 0) { + cout << -b; + } + else if (c > 0) { + cout << -b - sqrt(c) << " " << -b + sqrt(c);*/ + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step12.cpp b/1.6.Step12.cpp new file mode 100644 index 0000000..0da7fa0 --- /dev/null +++ b/1.6.Step12.cpp @@ -0,0 +1,47 @@ +/* + 1.6 Действительные числа. Шаг 12 + + Даны действительные коэффициенты a, b, c. + Решите уравнение ax2 + bx + c = 0 и выведите все его корни. + + Формат входных данных: + Вводятся три действительных числа. + Формат выходных данных: + Если данное уравнение не имеет корней, выведите число 0. + Если уравнение имеет один корень, выведите число 1, а затем этот корень. + Если уравнение имеет два корня, выведите число 2, а затем два корня в порядке возрастания. + Если уравнение имеет бесконечно много корней, выведите число 3. + Sample Input: 1 -1 -2 + Sample Output: 2 -1 2 +*/ +#include +#include + +using namespace std; + +int main() { + while (true) { + double a, b, c, D, x1, x2; + cin >> a >> b >> c; + if (a == 0 && b == 0 && c == 0) + cout << "3"; + if (a == 0 && b == 0 && c != 0) + cout << "0"; + if (a == 0 && b != 0) + cout << "1 " << -c / b; + if (a != 0) { + D = b * b - 4 * a * c; + x1 = (-b - sqrt(D)) / (2 * a); + x2 = (-b + sqrt(D)) / (2 * a); + if (D > 0) { + if (x1 < x2) cout << "2 " << x1 << " " << x2; + else cout << "2 " << x2 << " " << x1; + } + if (D == 0) + cout << "1 " << x1; + if (D < 0) + cout << "0"; + } + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step13.cpp b/1.6.Step13.cpp new file mode 100644 index 0000000..4351a8c --- /dev/null +++ b/1.6.Step13.cpp @@ -0,0 +1,25 @@ +/* + 1.6 Действительные числа. Шаг 13 + + Даны вещественные числа a, b, c, d, e, f. Известно, что система линейных уравнений + ax + by = e + cx + dy = f + имеет ровно одно решение. Выведите два числа x и y, являющиеся решением этой системы. + + Формат входных данных: + Вводятся шесть чисел - коэффициенты уравнений системы. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: 1 0 0 1 3 3 + Sample Output: 3 3 +*/ +#include + +int main() { + while (true) { + double a, b, c, d, e, f; + std:cin >> a >> b >> c >> d >> e >> f; + std:cout << (b * f - d * e) / (b * c - a * d) << " " << (c * e - a * f) / (b * c - a * d); + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step14.cpp b/1.6.Step14.cpp new file mode 100644 index 0000000..eebc123 --- /dev/null +++ b/1.6.Step14.cpp @@ -0,0 +1,93 @@ +/* + 1.6 Действительные числа. Шаг 14 + + Даны вещественные числа a, b, c, d, e, f. Решите систему линейных уравнений + ax + by = e + cx + dy = f + Формат входных данных: + Вводятся шесть чисел - коэффициенты уравнений системы. + Формат выходных данных: + -Вывод программы зависит от вида решения этой системы. + -Если система не имеет решений, то программа должна вывести единственное число 0. + -Если система имеет бесконечно много решений, каждое из которых имеет вид y=kx+n, + то программа должна вывести число 1, а затем значения k и n. + -Если система имеет единственное решение (x0, y0), то программа должна вывести число 2, + а затем значения x0 и y0. + -Если система имеет бесконечно много решений вида x=x0, y — любое, + то программа должна вывести число 3, а затем значение x0. + -Если система имеет бесконечно много решений вида y=y0, x — любое, + то программа должна вывести число 4, а затем значение y0. + -Если любая пара чисел (x, y) является решением, то программа должна вывести число 5. + Sample Input 1: 1 0 0 1 3 3 + Sample Output 1: 2 3 3 + Sample Input 2: 1 1 2 2 1 2 + Sample Output 2: 1 -1 1 + Sample Input 3: 0 2 0 4 1 2 + Sample Output 3: 4 0.5 + Sample Input 4: 2 3 4 6 1 2 + Sample Output 4: 1 -0.666667 0.333333 + Sample Input 5: 0 1 0 3 5 15 + Sample Output 5: 4 5 + Sample Input 6: 1 0 1 0 3 3 + Sample Output 6: 3 3 +*/ +#include + +using namespace std; + +int main() { + while (true) { + double a, b, c, d, e, f, det, det_x, det_y; + cin >> a >> b >> c >> d >> e >> f; + det = b * c - a * d; // главный определитель + det_x = b * f - d * e; // определитель x + det_y = c * e - a * f; // определитель y + if (det != 0) { + cout << "2 " << det_x / det << " " << det_y / det; + } + else { + if (det_x == 0 && det_y == 0) { + if (a == 0 && b == 0 && c == 0 && d == 0) { + if (e != 0 || f != 0) { + cout << "0"; + } + else { + cout << "5"; + } + } + else { + if (a == 0 && c == 0) { + if (b != 0) { + cout << "4 " << e / b; // 4 << y + } + else { + cout << "4 " << f / d; // 4 << y + } + } + else { + if (b == 0 && d == 0) { + if (a != 0) { + cout << "3 " << e / a; // 3 << x + } + else { + cout << "3 " << f / c; // 3 << x + } + } + else { + if (b != 0) { + cout << "1 " << -a / b << " " << e / b; // 1 << k << n + } + else { + cout << "1 " << -c / d << " " << f / d; // 1 << k << n + } + } + } + } + } + else { + cout << "0"; + } + } + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step3.cpp b/1.6.Step3.cpp new file mode 100644 index 0000000..6c7601e --- /dev/null +++ b/1.6.Step3.cpp @@ -0,0 +1,25 @@ +/* + 1.6 Действительные числа. Шаг 3 + + Дано положительное действительное число X. Выведите его дробную часть. + + Формат входных данных: + Вводятся положительное действительное число. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: 17.9 + Sample Output: 0.9 +*/ +#include +int main() { + while (true) { + double x; + std::cin >> x; + std::cout << x - (int)x; + /*int a; + double b; + std::cin >> a >> b; + std::cout << b;*/ + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step4.cpp b/1.6.Step4.cpp new file mode 100644 index 0000000..e9ff8f0 --- /dev/null +++ b/1.6.Step4.cpp @@ -0,0 +1,20 @@ +/* + 1.6 Действительные числа. Шаг 4 + + Дано положительное действительное число X. Выведите его первую цифру после десятичной точки. + Формат входных данных: + Вводится положительное действительное число. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: 1.79 + Sample Output: 7 +*/ +#include +int main() { + while (true) { + double x; + std::cin >> x; + std::cout << (int)(x * 10) % 10; + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step5.cpp b/1.6.Step5.cpp new file mode 100644 index 0000000..6a36dad --- /dev/null +++ b/1.6.Step5.cpp @@ -0,0 +1,28 @@ +/* + 1.6 Действительные числа. Шаг 5 + + Даны длины сторон треугольника. Вычислите площадь треугольника. + Формат входных данных: + Вводятся три положительных числа. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: 3 4 5 + Sample Output: 6 +*/ +#include +#include +int main() { + while (true) { + double a, b, c, p; + std::cin >> a >> b >> c; + //Вычисление площади треугольника через формулу Герона + p = (a + b + c) / 2; + std::cout << std::sqrt(p * (p - a) * (p - b) * (p - c)); + /* + //вычисление площади треугольника через две стороны и угол + double a, b, c; + std::cin >> a >> b >> c; + std::cout << 0.5 * a * b * sin(acos((a * a + b * b - c * c) / (2 * a * b)));*/ + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step6.cpp b/1.6.Step6.cpp new file mode 100644 index 0000000..3a6117f --- /dev/null +++ b/1.6.Step6.cpp @@ -0,0 +1,31 @@ +/* + 1.6 Действительные числа. Шаг 6 + + Процентная ставка по вкладу составляет P процентов годовых, которые прибавляются к сумме вклада в конце года. + Вклад составляет X рублей Y копеек. Определите размер вклада через год. + При решении этой задачи нельзя пользоваться условными инструкциями и циклами. + + Формат входных данных: + Программа получает на вход целые числа P, X, Y. + Формат выходных данных: + Программа должна вывести два числа: величину вклада через год в рублях и копейках. Дробная часть копеек отбрасывается. + Sample Input: 12 179 0 + Sample Output: 200 48 +*/ +#include +//#include +int main() { + while (true) { + int p, x, y; + std::cin >> p >> x >> y; + x = (x * 100 + y) * (p + 100) / 100; + std::cout << x / 100 << " " << x % 100; + + /*double dx; + dx = x + (double)y / 100; + std::cout << int(dx + dx * p / 100) + << " " + << trunc(100*(dx + dx * p / 100) - 100*int(dx + dx * p / 100));*/ + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step7.cpp b/1.6.Step7.cpp new file mode 100644 index 0000000..1d8dc2e --- /dev/null +++ b/1.6.Step7.cpp @@ -0,0 +1,31 @@ +/* + 1.6 Действительные числа. Шаг 7 + + Процентная ставка по вкладу составляет P процентов годовых, которые прибавляются к сумме вклада через год. + Вклад составляет X рублей Y копеек. Определите размер вклада через K лет. + + Формат входных данных: + Программа получает на вход целые числа P, X, Y, K . + Формат выходных данных: + Программа должна вывести два числа: величину вклада через K лет в рублях и копейках. + Дробное число копеек по истечение года отбрасывается. Перерасчет суммы вклада (с отбрасыванием дробных частей копеек) + происходит ежегодно. + Примечание: + В этой задаче часто возникают проблемы с точностью. Если они возникли у вас - попробуйте решить задачу в целых числах. + Sample Input: 12 179 0 5 + Sample Output: 315 43 +*/ +#include +int main() { + while (true) { + int p, x, y, k; + std::cin >> p >> x >> y >> k; + x = x * 100 + y; + while (k > 0) { + x += x * p / 100; + k--; + } + std::cout << x / 100 << " " << x % 100; + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step8.cpp b/1.6.Step8.cpp new file mode 100644 index 0000000..c5ee3e1 --- /dev/null +++ b/1.6.Step8.cpp @@ -0,0 +1,26 @@ +/* + 1.6 Действительные числа. Шаг 8 + + Определите среднее значение всех элементов последовательности, завершающейся числом 0. + + Формат входных данных: + Вводится последовательность целых чисел, оканчивающаяся числом 0 + (само число 0 в последовательность не входит, а служит как признак ее окончания). + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: 1 7 9 0 + Sample Output: 5.66666666667 +*/ +#include +#include +int main() { + while (true) { + int n, i = 0, sum = 0; + while (std::cin >> n && n) { + sum += n; + i++; + } + std::cout << std::setprecision(11) << std::fixed << (double)sum / i; + } + return 0; +} \ No newline at end of file diff --git a/1.6.Step9.cpp b/1.6.Step9.cpp new file mode 100644 index 0000000..5bcdd65 --- /dev/null +++ b/1.6.Step9.cpp @@ -0,0 +1,33 @@ +/* + 1.6 Действительные числа. Шаг 9 + + Дана последовательность натуральных чисел x1, x2, ..., xn. Стандартным отклонением называется величина + b = sqrt( ((x1 - s)^2 + (x2 - s)^2 + ... + (xn - s)^2) / (n - 1) ) + где + s = (x1 + x2 + ... + xn) / n + - среднее значение последовательности. + Определите стандартное отклонение для данной последовательности натуральных чисел, завершающейся числом 0. + + Формат входных данных: + Вводится последовательность натуральных чисел, оканчивающаяся числом 0 + (само число 0 в последовательность не входит, а служит как признак ее окончания). + В последовательности не менее двух чисел до 0. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: 1 7 9 0 + Sample Output: 4.16333199893 +*/ +#include +#include +int main() { + while (true) { + int x, sum1 = 0, sum2 = 0, n = 0; + while (std::cin >> x && x) { + sum1 += x * x; + sum2 += x; + n++; + } + std::cout << std::setprecision(11) << std::fixed << sqrt((sum1 - (double)sum2 * sum2 / n) / (n - 1)); + } + return 0; +} \ No newline at end of file diff --git a/1.7.Step3.cpp b/1.7.Step3.cpp new file mode 100644 index 0000000..89de6eb --- /dev/null +++ b/1.7.Step3.cpp @@ -0,0 +1,41 @@ +/* + 1.6 Цикл for и массивы. Шаг 3 + + Выведите все элементы массива с четными индексами (то есть A[0], A[2], A[4], ...). + + Формат входных данных: + В первой строке вводится количество элементов в массиве. Во второй строке вводятся элементы массива. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: + 5 + 1 2 3 4 5 + Sample Output: + 1 3 5 +*/ +#include +#include + +using namespace std; + +int main(void) { + while (true) { + int n; + cin >> n; + vector a(n); + for (int i = 0; i < n; i++) { + cin >> a[i]; + if (!(i % 2)) { + cout << a[i] << " "; + } + } + /*int n, a; + cin >> n; + for (int i = 0; i < n; i++) { + cin >> a; + if (!(i % 2)) { + cout << a << " "; + } + }*/ + } +} \ No newline at end of file diff --git a/1.7.Step4.cpp b/1.7.Step4.cpp new file mode 100644 index 0000000..1234274 --- /dev/null +++ b/1.7.Step4.cpp @@ -0,0 +1,31 @@ +/* + 1.6 Цикл for и массивы. Шаг 4 + + Выведите все четные элементы массива. + Формат входных данных: + В первой строке вводится количество элементов в массиве. Во второй строке вводятся элементы массива. + Формат выходных данных: + Выведите ответ на задачу. Элементы выводятся в том же порядке, в котором они стояли в массиве. + Sample Input: + 7 + 1 2 2 3 3 3 4 + Sample Output: + 2 2 4 +*/ + +#include +#include + +using namespace std; + +int main(void) { + int n; + cin >> n; + vector a(n); + for (int i = 0; i < n; i++) { + cin >> a[i]; + if (a[i] % 2 == 0) { + cout << a[i] << " "; + } + } +} \ No newline at end of file diff --git a/1.7.Step5.cpp b/1.7.Step5.cpp new file mode 100644 index 0000000..01855fb --- /dev/null +++ b/1.7.Step5.cpp @@ -0,0 +1,32 @@ +/* + 1.6 Цикл for и массивы. Шаг 5 + + Найдите количество положительных элементов в данном массиве. + Формат входных данных: + В первой строке вводится количество элементов в массиве. Во второй строке вводятся элементы массива. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: + 5 + 1 -2 3 -4 5 + Sample Output: + 3 +*/ + +#include +#include + +using namespace std; + +int main(void) { + int n, c = 0; + cin >> n; + vector a(n); + for (int i = 0; i < n ; i++) { + cin >> a[i]; + if (a[i] > 0) { + c++; + } + } + cout << c; +} \ No newline at end of file diff --git a/1.7.Step6.cpp b/1.7.Step6.cpp new file mode 100644 index 0000000..4942f70 --- /dev/null +++ b/1.7.Step6.cpp @@ -0,0 +1,32 @@ +/* + 1.6 Цикл for и массивы. Шаг 6 + + Дан массив чисел. Выведите все элементы массива, которые больше предыдущего элемента . + Формат входных данных: + В первой строке вводится количество элементов в массиве. Во второй строке вводятся элементы массива. + Формат выходных данных: + Выведите ответ на задачу. + Sample Input: + 5 + 1 5 2 4 3 + Sample Output: + 5 4 +*/ + +#include +#include + +using namespace std; + +int main(void) { + int n; + cin >> n; + vector a(n); + cin >> a[0]; + for (int i = 1; i < n; i++) { + cin >> a[i]; + if (a[i] > a[i - 1]) { + cout << a[i] << " "; + } + } +} \ No newline at end of file diff --git a/1.7.Step7.cpp b/1.7.Step7.cpp new file mode 100644 index 0000000..48e526d --- /dev/null +++ b/1.7.Step7.cpp @@ -0,0 +1,36 @@ +/* + 1.6 Цикл for и массивы. Шаг 7 + + Дан массив целых чисел. Если в нем есть два соседних элемента одного знака, выведите эти числа. + Если соседних элементов одного знака нет - не выводите ничего. Если таких пар соседей несколько - выведите первую пару. + + Формат входных данных: + В первой строке вводится количество элементов в массиве. + Во второй строке вводятся элементы массива. Все числа отличны от нуля. + Формат выходных данных: + Выведите ответ на задачу. Элементы выводятся в порядке неубывания. + Sample Input: + 5 + -1 2 3 -1 -2 + Sample Output: + 2 3 +*/ + +#include +#include + +using namespace std; + +int main(void) { + int n; + cin >> n; + vector a(n); + cin >> a[0]; + for (int i = 1; i < n; i++) { + cin >> a[i]; + if ((a[i] < 0 && a[i - 1] < 0) || (a[i] > 0 && a[i - 1] > 0)) { + a[i] > a[i - 1] ? cout << a[i - 1] << " " << a[i] : cout << a[i] << " " << a[i - 1]; + break; + } + } +} \ No newline at end of file diff --git a/Stepik_IntroCpp.sln b/Stepik_IntroCpp.sln new file mode 100644 index 0000000..603cca2 --- /dev/null +++ b/Stepik_IntroCpp.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.645 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Stepik_IntroCpp", "Stepik_IntroCpp.vcxproj", "{903176DD-874A-4D5B-8FFB-6D2928B0F6CC}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {903176DD-874A-4D5B-8FFB-6D2928B0F6CC}.Debug|x64.ActiveCfg = Debug|x64 + {903176DD-874A-4D5B-8FFB-6D2928B0F6CC}.Debug|x64.Build.0 = Debug|x64 + {903176DD-874A-4D5B-8FFB-6D2928B0F6CC}.Debug|x86.ActiveCfg = Debug|Win32 + {903176DD-874A-4D5B-8FFB-6D2928B0F6CC}.Debug|x86.Build.0 = Debug|Win32 + {903176DD-874A-4D5B-8FFB-6D2928B0F6CC}.Release|x64.ActiveCfg = Release|x64 + {903176DD-874A-4D5B-8FFB-6D2928B0F6CC}.Release|x64.Build.0 = Release|x64 + {903176DD-874A-4D5B-8FFB-6D2928B0F6CC}.Release|x86.ActiveCfg = Release|Win32 + {903176DD-874A-4D5B-8FFB-6D2928B0F6CC}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {44745AEB-1C1D-4C99-9A74-529145B199E1} + EndGlobalSection +EndGlobal diff --git a/Stepik_IntroCpp.vcxproj b/Stepik_IntroCpp.vcxproj new file mode 100644 index 0000000..22fdb25 --- /dev/null +++ b/Stepik_IntroCpp.vcxproj @@ -0,0 +1,168 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 15.0 + {903176DD-874A-4D5B-8FFB-6D2928B0F6CC} + Win32Proj + StepikIntroCpp + 10.0.17763.0 + + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + Application + true + v141 + Unicode + + + Application + false + v141 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + + + true + + + false + + + false + + + + NotUsing + Level3 + Disabled + true + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + pch.h + + + Console + true + + + + + Use + Level3 + Disabled + true + _DEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + pch.h + + + Console + true + + + + + Use + Level3 + MaxSpeed + true + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + pch.h + + + Console + true + true + true + + + + + Use + Level3 + MaxSpeed + true + true + true + NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + true + pch.h + + + Console + true + true + true + + + + + + + + + Create + Create + Create + Create + + + + + + \ No newline at end of file diff --git a/Stepik_IntroCpp.vcxproj.filters b/Stepik_IntroCpp.vcxproj.filters new file mode 100644 index 0000000..1851d1f --- /dev/null +++ b/Stepik_IntroCpp.vcxproj.filters @@ -0,0 +1,30 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + Файлы заголовков + + + + + Исходные файлы + + + Исходные файлы + + + \ No newline at end of file diff --git a/Stepik_IntroCpp.vcxproj.user b/Stepik_IntroCpp.vcxproj.user new file mode 100644 index 0000000..7e04c94 --- /dev/null +++ b/Stepik_IntroCpp.vcxproj.user @@ -0,0 +1,6 @@ + + + + false + + \ No newline at end of file diff --git a/pch.cpp b/pch.cpp new file mode 100644 index 0000000..844a501 --- /dev/null +++ b/pch.cpp @@ -0,0 +1,5 @@ +// pch.cpp: исходный файл, соответствующий предкомпилированному заголовку; нужен для компиляции + +#include "pch.h" + +// В целом этот файл можно пропустить, но не удаляйте его, если вы используете предкомпилированные заголовки. diff --git a/pch.h b/pch.h new file mode 100644 index 0000000..3155088 --- /dev/null +++ b/pch.h @@ -0,0 +1,14 @@ +// Советы по началу работы +// 1. В окне обозревателя решений можно добавлять файлы и управлять ими. +// 2. В окне Team Explorer можно подключиться к системе управления версиями. +// 3. В окне "Выходные данные" можно просматривать выходные данные сборки и другие сообщения. +// 4. В окне "Список ошибок" можно просматривать ошибки. +// 5. Последовательно выберите пункты меню "Проект" > "Добавить новый элемент", чтобы создать файлы кода, или "Проект" > "Добавить существующий элемент", чтобы добавить в проект существующие файлы кода. +// 6. Чтобы снова открыть этот проект позже, выберите пункты меню "Файл" > "Открыть" > "Проект" и выберите SLN-файл. + +#ifndef PCH_H +#define PCH_H + +// TODO: add headers that you want to pre-compile here + +#endif //PCH_H