Skip to content
This repository was archived by the owner on Sep 6, 2018. It is now read-only.
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
e0752a2
Решена задача №1
Sep 8, 2016
4938b29
Решена последняя тривиальная
Sep 8, 2016
5ec600a
Решена простая №1
Sep 8, 2016
1a83139
Решена последняя простая
Sep 8, 2016
5872d24
programm is great!
Sep 19, 2016
f315674
easy programm (2)
dmitrirazumov Sep 19, 2016
5bb67c8
easy programm (3)
dmitrirazumov Sep 19, 2016
ac7a19c
easy programm (4)
dmitrirazumov Sep 26, 2016
e169a21
programm normal level
dmitrirazumov Sep 26, 2016
551ec7d
programm normal level
dmitrirazumov Sep 26, 2016
7146849
circleInside
dmitrirazumov Sep 29, 2016
1946f98
lcm (lesson 3)
dmitrirazumov Sep 29, 2016
cef8354
revert (lesson 3)
dmitrirazumov Sep 29, 2016
094d72d
2 programms from 4 lesson
dmitrirazumov Oct 17, 2016
bdc7f2d
5 programms from 4 lesson
dmitrirazumov Oct 24, 2016
63f0c6c
5 programms from 4 lesson
dmitrirazumov Oct 31, 2016
0137223
5 programms from 4 lesson
dmitrirazumov Oct 31, 2016
f185a38
1 programms from 4 lesson
dmitrirazumov Oct 31, 2016
bfa5004
1 programms from 4 lesson
dmitrirazumov Oct 31, 2016
4ec65fc
2 programms from 5 lesson
dmitrirazumov Oct 31, 2016
cc953c9
1 programm from 6 lesson
dmitrirazumov Nov 13, 2016
cda72ec
normal and hard programms from 5 lesson
dmitrirazumov Nov 21, 2016
7684804
hard programm from 5 lesson
dmitrirazumov Nov 23, 2016
4c905e2
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
3919394
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
e2c92ec
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
fedf87d
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
28484f4
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
09feb7d
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
e27cc4a
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
fb33b6b
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
e7864b3
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
f370249
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
15e14a7
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
26a1e51
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
47e75cc
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
17fff95
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
0279715
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
485831d
Добавил дополнительное условие в программу
dmitrirazumov Nov 23, 2016
c987f8c
2 programms from 4 lesson
dmitrirazumov Nov 24, 2016
a6cff94
Проверка правильности программы через бота
dmitrirazumov Nov 24, 2016
d857d89
Проверка правильности программы через бота
dmitrirazumov Nov 24, 2016
45b632b
Проверка правильности программы через бота
dmitrirazumov Nov 24, 2016
a7dabd9
Проверка правильности программы через бота
dmitrirazumov Nov 24, 2016
50d1b00
Проверка правильности программы через бота
dmitrirazumov Nov 24, 2016
0734c64
Проверка правильности программы через бота
dmitrirazumov Nov 24, 2016
4063b84
Проверка правильности программы через бота
dmitrirazumov Nov 24, 2016
06adeca
Проверка правильности программы через бота
dmitrirazumov Nov 24, 2016
65bed38
Выяснение причины "Failure: Check Ended"
dmitrirazumov Nov 24, 2016
1bf695a
Исправление замечаний
dmitrirazumov Nov 27, 2016
29385f7
Пытка программы "PlusMinus"
dmitrirazumov Nov 27, 2016
a996930
Пытка программы "PlusMinus"
dmitrirazumov Dec 5, 2016
565d992
Исправление всех ошибок
dmitrirazumov Dec 5, 2016
387aa45
Most Expensive + one program from 6 lesson (task 1)
dmitrirazumov Dec 9, 2016
674b648
//
dmitrirazumov Dec 9, 2016
f337428
//
dmitrirazumov Dec 10, 2016
964a4d1
//
dmitrirazumov Dec 10, 2016
a56a5c3
Program from 6 lesson.
dmitrirazumov Dec 10, 2016
378a9e0
Lesson 7:
dmitrirazumov Dec 17, 2016
a589456
Style correction
dmitrirazumov Dec 17, 2016
e5f0aff
Correction
dmitrirazumov Dec 17, 2016
4948394
Add "hashCode()"
dmitrirazumov Dec 17, 2016
b36b1d6
Add "hashCode()"
dmitrirazumov Dec 17, 2016
7ce3798
Correcting"hashCode()"
dmitrirazumov Dec 17, 2016
a54e397
Correcting "plusMinus"
dmitrirazumov Dec 17, 2016
83a2d1b
Correcting "equals"
dmitrirazumov Dec 18, 2016
8abcf9a
Correcting "equals"
dmitrirazumov Dec 18, 2016
868bcfe
Correcting "equals"
dmitrirazumov Dec 18, 2016
574034b
Correcting "equals"
dmitrirazumov Dec 19, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 24 additions & 4 deletions src/lesson1/task1/Simple.kt
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,12 @@ fun main(args: Array<String>) {
* Пользователь задает время в часах, минутах и секундах, например, 8:20:35.
* Рассчитать время в секундах, прошедшее с начала суток (30035 в данном случае).
*/
fun seconds(hours: Int, minutes: Int, seconds: Int): Int = TODO()
fun seconds(hours: Int, minutes: Int, seconds: Int): Int {
val a = hours * 3600
val b = minutes * 60
val sum = a + b + seconds
return sum
}

/**
* Тривиальная
Expand All @@ -76,15 +81,22 @@ fun angleInRadian(grad: Int, min: Int, sec: Int): Double = TODO()
* Найти длину отрезка, соединяющего точки на плоскости с координатами (x1, y1) и (x2, y2).
* Например, расстояние между (3, 0) и (0, 4) равно 5
*/
fun trackLength(x1: Double, y1: Double, x2: Double, y2: Double): Double = TODO()
fun trackLength(x1: Double, y1: Double, x2: Double, y2: Double): Double {
val dluNa = sqrt(sqr(x2-x1)+sqr(y2-y1))
return dluNa
}

/**
* Простая
*
* Пользователь задает целое число, большее 100 (например, 3801).
* Определить третью цифру справа в этом числе (в данном случае 8).
*/
fun thirdDigit(number: Int): Int = TODO()
fun thirdDigit(number: Int): Int {
val a = number%1000
val third = a/100
return third
}

/**
* Простая
Expand All @@ -110,4 +122,12 @@ fun accountInThreeYears(initial: Int, percent: Int): Double = TODO()
* Пользователь задает целое трехзначное число (например, 478).
*Необходимо вывести число, полученное из заданного перестановкой цифр в обратном порядке (например, 874).
*/
fun numberRevert(number: Int): Int = TODO()
fun numberRevert(number: Int): Int {
val a = number%10
val k = number/10
val b = k%10
val m = k/10
val c = m
val new = a*100+b*10+c
return new
}
26 changes: 23 additions & 3 deletions src/lesson2/task1/IfElse.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
@file:Suppress("UNUSED_PARAMETER")

package lesson2.task1

import lesson1.task1.discriminant
Expand Down Expand Up @@ -33,7 +34,12 @@ fun minBiRoot(a: Double, b: Double, c: Double): Double {
* Мой возраст. Для заданного 0 < n < 200, рассматриваемого как возраст человека,
* вернуть строку вида: «21 год», «32 года», «12 лет».
*/
fun ageDescription(age: Int): String = TODO()
fun ageDescription(age: Int): String {
if (age % 100 in 5..20) return "$age лет"
if (age % 10 == 1) return "$age год"
if (age % 10 in 2..4) return "$age года"
return "$age лет"
}

/**
* Простая
Expand All @@ -44,7 +50,15 @@ fun ageDescription(age: Int): String = TODO()
*/
fun timeForHalfWay(t1: Double, v1: Double,
t2: Double, v2: Double,
t3: Double, v3: Double): Double = TODO()
t3: Double, v3: Double): Double {
val s1 = v1 * t1
val s2 = v2 * t2
val s3 = v3 * t3
val h = (s1 + s2 + s3) / 2
return if (h <= s1) h / v1
else if ((h > s1) and (h <= s1 + s2)) t1 + ((h - s1) / v2)
else t1 + t2 + ((h - s1 - s2) / v3)
}

/**
* Простая
Expand All @@ -56,7 +70,12 @@ fun timeForHalfWay(t1: Double, v1: Double,
*/
fun whichRookThreatens(kingX: Int, kingY: Int,
rookX1: Int, rookY1: Int,
rookX2: Int, rookY2: Int): Int = TODO()
rookX2: Int, rookY2: Int): Int {
return if (((kingX != rookX1) && (kingY != rookY1)) && ((kingX != rookX2) && (kingY != rookY2))) 0
else if (((kingX == rookX1) || (kingY == rookY1)) && ((kingX != rookX2) && (kingY != rookY2))) 1
else if (((kingX != rookX1) && (kingY != rookY1)) && ((kingX == rookX2) || (kingY == rookY2))) 2
else 3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Здесь и далее, лучше использовать && вместо and, || вместо or.

}

/**
* Простая
Expand All @@ -81,6 +100,7 @@ fun rookOrBishopThreatens(kingX: Int, kingY: Int,
*/
fun triangleKind(a: Double, b: Double, c: Double): Int = TODO()


/**
* Средняя
*
Expand Down
13 changes: 11 additions & 2 deletions src/lesson2/task2/Logical.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
@file:Suppress("UNUSED_PARAMETER")

package lesson2.task2

import lesson1.task1.sqr
Expand All @@ -17,7 +18,12 @@ fun pointInsideCircle(x: Double, y: Double, x0: Double, y0: Double, r: Double) =
* Четырехзначное число назовем счастливым, если сумма первых двух ее цифр равна сумме двух последних.
* Определить, счастливое ли заданное число, вернуть true, если это так.
*/
fun isNumberHappy(number: Int): Boolean = TODO()
fun isNumberHappy(number: Int): Boolean {
val n1 = ((number % 10) + ((number / 10) % 10))
val n2 = ((number / 1000) + ((number / 100) % 10))
return (n1 == n2)

}

/**
* Простая
Expand All @@ -35,7 +41,10 @@ fun queenThreatens(x1: Int, y1: Int, x2: Int, y2: Int): Boolean = TODO()
* Вернуть true, если утверждение верно
*/
fun circleInside(x1: Double, y1: Double, r1: Double,
x2: Double, y2: Double, r2: Double): Boolean = TODO()
x2: Double, y2: Double, r2: Double): Boolean {
val length = Math.sqrt(sqr(x2 - x1) + sqr(y2 - y1))
return (length <= (r2 - r1))
}

/**
* Средняя
Expand Down
42 changes: 38 additions & 4 deletions src/lesson3/task1/Loop.kt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
@file:Suppress("UNUSED_PARAMETER")

package lesson3.task1

/**
Expand Down Expand Up @@ -34,7 +35,7 @@ fun isPrime(n: Int): Boolean {
*/
fun isPerfect(n: Int): Boolean {
var sum = 1
for (m in 2..n/2) {
for (m in 2..n / 2) {
if (n % m > 0) continue
sum += m
if (sum > n) break
Expand All @@ -57,7 +58,18 @@ fun digitCountInNumber(n: Int, m: Int): Int =
* Найти количество цифр в заданном числе n.
* Например, число 1 содержит 1 цифру, 456 -- 3 цифры, 65536 -- 5 цифр.
*/
fun digitNumber(n: Int): Int = TODO()
fun digitNumber(n: Int): Int {
if (n == 0) return 1
else {
var number = Math.abs(n)
var result = 0
while (number > 0) {
number /= 10
result += 1
}
return result
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Может исправите эту задачу наконец? Она работает неверно для отрицательных чисел

}

/**
* Простая
Expand All @@ -73,7 +85,19 @@ fun fib(n: Int): Int = TODO()
* Для заданных чисел m и n найти наименьшее общее кратное, то есть,
* минимальное число k, которое делится и на m и на n без остатка
*/
fun lcm(m: Int, n: Int): Int = TODO()
fun lcm(m: Int, n: Int): Int {
var num_m = m
var num_n = n
val multiplication = (num_m * num_n)
while ((num_m != 0) && (num_n != 0)) {
if (num_m > num_n) num_m %= num_n
else num_n %= num_m
}
val count = num_m + num_n
return multiplication / count


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Пробелы, ненужные пустые строки

}

/**
* Простая
Expand Down Expand Up @@ -131,7 +155,15 @@ fun cos(x: Double, eps: Double): Double = TODO()
* Поменять порядок цифр заданного числа n на обратный: 13478 -> 87431.
* Не использовать строки при решении задачи.
*/
fun revert(n: Int): Int = TODO()
fun revert(n: Int): Int {
var m = 0
var num = n
do {
m = (m * 10 + (num % 10))
num /= 10
} while (num > 0)
return m
}

/**
* Средняя
Expand Down Expand Up @@ -167,3 +199,5 @@ fun squareSequenceDigit(n: Int): Int = TODO()
* Например, 2-я цифра равна 1, 9-я 2, 14-я 5.
*/
fun fibSequenceDigit(n: Int): Int = TODO()


Loading