upd
This commit is contained in:
206
java/Main.java
206
java/Main.java
@@ -1,10 +1,212 @@
|
|||||||
|
import java.lang.reflect.Array;
|
||||||
|
import java.math.BigInteger;
|
||||||
|
import java.util.Arrays;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
task14();
|
task24(args);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void task14() {
|
static void task24(String[] args) {
|
||||||
|
/*
|
||||||
|
Вампирами называются числа, состоящие из четного количества цифр и полученные перемножением пары чисел, каждое из которых содержит половину цифр результата. Цифры берутся из исходного числа в произвольном порядке, завершающие нули недопустимы. Примеры:
|
||||||
|
1) 1260 = 21 * 60;
|
||||||
|
2) 1827 = 21 * 87;
|
||||||
|
3) 2187 = 27 * 81.
|
||||||
|
Напишите программу, которая находит всех «вампиров», состоящих из 4 цифр. (Задача предложена Дэном Форханом.)
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (int x = 10; x < 100; x++) {
|
||||||
|
for (int y = 10; y < 100; y++) {
|
||||||
|
if (Integer.toString(x * y).length() == 4) {
|
||||||
|
char[] claws_array = (Integer.toString(x) + Integer.toString(y)).toCharArray();
|
||||||
|
Arrays.sort(claws);
|
||||||
|
String
|
||||||
|
|
||||||
|
char[] vampire_array = Integer.toString(x * y).toCharArray();
|
||||||
|
Arrays.sort(claws);
|
||||||
|
|
||||||
|
if (claws.equals(vampire)) {
|
||||||
|
System.out.println(x + " * " + y + " = " + x * y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void task23(String[] args) {
|
||||||
|
/*
|
||||||
|
(4) Числами Фибоначчи называется числовая последовательность 1, 1, 2, 3, 5, 8, 13, 21, 34 и т. д., в которой каждое число, начиная с третьего, является суммой двух предыдущих. Напишите метод, который получает целочисленный аргумент и выводит указанное количество чисел Фибоначчи. Например, при запуске командой java Fibonacci 5 (где Fibonacci — имя класса) должна выводиться последовательность 1, 1, 2, 3, 5.
|
||||||
|
*/
|
||||||
|
|
||||||
|
int n = Integer.parseInt(args[0]);
|
||||||
|
// System.out.println(n);
|
||||||
|
|
||||||
|
BigInteger A = BigInteger.valueOf(1), B = BigInteger.valueOf(1), C;
|
||||||
|
|
||||||
|
if (n == 0) {
|
||||||
|
System.out.println("");
|
||||||
|
} else if (n == 1) {
|
||||||
|
System.out.println("1");
|
||||||
|
} else if (n == 2) {
|
||||||
|
System.out.println("1 1");
|
||||||
|
} else {
|
||||||
|
System.out.print("1 1 ");
|
||||||
|
for (int i = 0; i < n - 2; i++) {
|
||||||
|
C = A.add(B);
|
||||||
|
A = B;
|
||||||
|
B = C;
|
||||||
|
System.out.print(B.toString() + " ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void task22() {
|
||||||
|
/*
|
||||||
|
Создайте команду switch, которая выводит сообщение в каждой секции case. Разместите ее в цикле for, проверяющем все допустимые значения case. Каждая секция case должна завершаться командой break. Затем удалите команды break и посмотрите, что произойдет.
|
||||||
|
*/
|
||||||
|
|
||||||
|
for (int i = 1; i <= 5; i++) {
|
||||||
|
switch (i) {
|
||||||
|
case 1:
|
||||||
|
case 2:
|
||||||
|
|
||||||
|
System.out.println("<3");
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 4:
|
||||||
|
case 5:
|
||||||
|
|
||||||
|
System.out.println("no love :(");
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
System.out.println(i);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static int test(int testval, int begin, int end) {
|
||||||
|
/*
|
||||||
|
1 - testval принадлежит [begin, end]
|
||||||
|
0 - иначе
|
||||||
|
*/
|
||||||
|
if (begin <= testval && testval <= end) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void task20() {
|
||||||
|
/*
|
||||||
|
Измените метод test() так, чтобы он получал два дополнительных аргумента begin и end, а значение testval проверялось на принадлежность к диапазону [begin, end] (с включением границ).
|
||||||
|
*/
|
||||||
|
|
||||||
|
System.out.println(
|
||||||
|
test(2, 1, 5) // 2 in [1, 5] (1)
|
||||||
|
);
|
||||||
|
|
||||||
|
System.out.println(
|
||||||
|
test(1, 1, 5) // 1 in [1, 5] (1)
|
||||||
|
);
|
||||||
|
|
||||||
|
System.out.println(
|
||||||
|
test(-1, 1, 5) // -1 not in [1, 5] (0)
|
||||||
|
);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void task18() {
|
||||||
|
/*
|
||||||
|
Напишите программу, использующую два вложенных цикла for и оператор остатка (%) для поиска и вывода простых чисел (то есть целых чисел, не делящихся нацело ни на какое другое число, кроме себя и 1).
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
for (int i = 2; i < 100000; i++) {
|
||||||
|
boolean prime = true;
|
||||||
|
for (int j = 2; j < i; j++) {
|
||||||
|
if (i % j == 0) {
|
||||||
|
// System.out.println("число " + i + " не простое");
|
||||||
|
prime = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (prime) {
|
||||||
|
System.out.println("число " + i + " простое");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void task17() {
|
||||||
|
/*
|
||||||
|
Измените упражнение 2 так, чтобы код выполнялся в «бесконечном» цикле while. Программа должна работать до тех пор, пока ее выполнение не будет прервано с клавиатуры (как правило, нажатием клавиш Ctrl+C).
|
||||||
|
*/
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
task16();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void task16() {
|
||||||
|
/*
|
||||||
|
Напишите программу, которая генерирует 25 случайных значений типа int. Для каждого значения команда if - e ls e сообщает, в каком отношении оно находится с другим случайно сгенерированным числом (больше, меньше, равно).
|
||||||
|
*/
|
||||||
|
for (int i = 0; i < 25; i++) {
|
||||||
|
int num1 = (int)(Math.random() * 100);
|
||||||
|
int num2 = (int)(Math.random() * 100);
|
||||||
|
|
||||||
|
// System.out.println("num1: " + num1);
|
||||||
|
// System.out.println("num2: " + num2);
|
||||||
|
|
||||||
|
if (num1 > num2) {
|
||||||
|
System.out.println(num1 + " > " + num2);
|
||||||
|
} else if (num1 < num2) {
|
||||||
|
System.out.println(num1 + " < " + num2);
|
||||||
|
} else {
|
||||||
|
System.out.println(num1 + " = " + num2);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void task15() {
|
||||||
|
/*
|
||||||
|
Напишите программу, которая выводит числа от 1 до 100.
|
||||||
|
*/
|
||||||
|
for (int i = 1; i <= 100; i++) {
|
||||||
|
System.out.println(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void allStringOps(String s1, String s2) {
|
||||||
|
System.out.println("s1 < s2: " + (s1.compareTo(s2) < 0));
|
||||||
|
System.out.println("s1 > s2: " + (s1.compareTo(s2) > 0));
|
||||||
|
System.out.println("s1 <= s2: " + (s1.compareTo(s2) <= 0));
|
||||||
|
System.out.println("s1 >= s2: " + (s1.compareTo(s2) >= 0));
|
||||||
|
|
||||||
|
System.out.println("s1 == s2: " + (s1 == s2));
|
||||||
|
System.out.println("s1 != s2: " + (s1 != s2));
|
||||||
|
|
||||||
|
System.out.println("s1.equals(s2): " + s1.equals(s2));
|
||||||
|
System.out.println("s2.equals(s1): " + s2.equals(s1));
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void task14() {
|
||||||
|
/*
|
||||||
|
Напишите метод, который получает два аргумента String, выполняет с ними все операции логических сравнений и выводит результаты. Для операций == и != также выполните проверку equals(). Вызовите свой метод из main() для нескольких разных объектов String.
|
||||||
|
*/
|
||||||
|
|
||||||
|
allStringOps("hello", "world");
|
||||||
|
allStringOps("hello", "hello");
|
||||||
|
allStringOps(new String("hello"), new String("hello"));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void charToBin(char ch) {
|
static void charToBin(char ch) {
|
||||||
|
|||||||
Reference in New Issue
Block a user