Цитата:
Ввести с консоли n целых чисел и поместить их в массив. На консоль вывести:
1. Четные и нечетные числа.
2. Наибольшее и наименьшее число.
3. Числа, которые делятся на 3 или на 9.
4. Числа, которые делятся на 5 и на 7.
5. Элементы, расположенные методом пузырька по убыванию модулей.
6. Все трехзначные числа, в десятичной записи которых нет одинаковых цифр.
7. Наибольший общий делитель и наименьшее общее кратное этих чисел.
8. Простые числа.
9. Отсортированные числа в порядке возрастания и убывания.
10. Числа в порядке убывания частоты встречаемости чисел.
11. “Счастливые” числа.
12. Числа Фибоначчи: f0 = f1 = 1, f (n) = f (n–1) + f (n–2).
13. Числа-палиндромы, значения которых в прямом и обратном порядке совпадают.
14. Элементы, которые равны полусумме соседних эле¬ментов.
15. Период десятичной дроби p = m/n для первых двух целых положительных чисел n и m, расположенных подряд.
16. Построить треугольник Паскаля для первого положительного числа.
|
Привет, решение данных заданий на Java - ниже.
Покритикуйте.
PHP код:
package chapt01.b;
import java.util.*;
import static java.util.Collections.*;
/**
* Ввести с консоли n целых чисел и поместить их в массив. На консоль вывести:
*
* @author m1st
*/
public class OperationsWithNumbers {
private static List<Integer> divider(int divider, Integer[] array) {
List<Integer> divided = new LinkedList<Integer>();
for (Integer anArray : array) {
if (anArray % divider == 0)
divided.add(anArray);
}
return divided;
}
private static Map revSortByVal(Map<Integer, Integer> map) {
List<Object> list = new LinkedList<Object>(map.entrySet());
sort(list, new Comparator() {
public int compare(Object o1, Object o2) {
return ((Comparable) ((Map.Entry) (o2)).getValue())
.compareTo(((Map.Entry) (o1)).getValue());
}
});
Map result = new LinkedHashMap();
for (Object aList : list) {
Map.Entry entry = (Map.Entry) aList;
result.put(entry.getKey(), entry.getValue());
}
return result;
}
private static List<Integer> bubbleRevSortByMod(Integer[] input) {
Integer[] nums = input.clone();
boolean swapped = true;
int j = 0;
int tmp;
while (swapped) {
swapped = false;
j++;
for (int i = 0; i < nums.length - j; i++) {
if (Math.abs(nums[i]) < Math.abs(nums[i + 1])) {
tmp = nums[i];
nums[i] = nums[i + 1];
nums[i + 1] = tmp;
swapped = true;
}
}
}
return Arrays.asList(nums);
}
private static long gcd(long a, long b) // Greatest Common Divisor
{
while (b > 0) {
long temp = b;
b = a % b;
a = temp;
}
return a;
}
private static long gcd(Integer[] input) {
long result = input[0];
for (int i = 1; i < input.length; i++)
result = gcd(result, input[i]);
return result;
}
private static long lcm(long a, long b) // Least Common Multiple
{
return a * (b / gcd(a, b));
}
private static long lcm(Integer[] input) {
long result = input[0];
for (int i = 1; i < input.length; i++) {
if ((input[i] == 0 || input[0] == 0)
|| (input[i] < 0 || input[0] < 0))
break;
result = lcm(result, input[i]);
}
return result;
}
private static List<Integer> list1 = new LinkedList<Integer>();
private static List<Integer> list2 = new LinkedList<Integer>();
public static List<Integer> primeNums(Integer[] input) {
list1.clear();
for (Integer anInput : input) {
if (isPrimeNum(anInput)) {
list1.add(anInput);
}
}
return list1;
}
public static boolean isPrimeNum(int n) {
boolean prime = true;
for (long i = 3; i <= Math.sqrt(n); i += 2) {
if (n % i == 0) {
prime = false;
break;
}
}
return (n % 2 != 0 && prime && n > 2) || n == 2;
}
private static Map<Integer, Integer> map = new TreeMap<Integer, Integer>();
private static Map<Integer, Integer> invMap = new TreeMap<Integer, Integer>();
private static void put(Integer key, Integer value) {
map.put(key, value);
invMap.put(value, key);
}
private static void buildPascalTriangle(int number, int rows) {
for (int y = 0; y < rows; y++) {
int c = number;
for (int w = 0; w < rows - y; w++) {
System.out.print(" ");
}
for (int x = 0; x <= y; x++) {
System.out.print(" " + c + " ");
c = c * (y - x) / (x + 1);
}
System.out.println();
}
}