Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.03.2012, 18:00   #1
m1st
Пользователь
 
Регистрация: 15.09.2010
Сообщений: 21
Лампочка Задачи на числа. Решение. Покритикуйте. (часть №1)

Цитата:
Ввести с консоли 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<
Integerdivider(int dividerInteger[] array) {
        List<
Integerdivided = new LinkedList<Integer>();
        for (
Integer anArray : array) {
            if (
anArray divider == 0)
                
divided.add(anArray);
        }
        return 
divided;
    }

    private static 
Map revSortByVal(Map<IntegerIntegermap) {
        List<
Object> list = new LinkedList<Object>(map.entrySet());
        
sort(list, new Comparator() {
            public 
int compare(Object o1Object o2) {
                return ((
Comparable) ((Map.Entry) (o2)).getValue())
                        .
compareTo(((Map.Entry) (o1)).getValue());
            }
        });
        
Map result = new LinkedHashMap();
        for (
Object aList : list) {
            
Map.Entry entry = (Map.EntryaList;
            
result.put(entry.getKey(), entry.getValue());
        }
        return 
result;
    }

    private static List<
IntegerbubbleRevSortByMod(Integer[] input) {
        
Integer[] nums input.clone();
        
boolean swapped true;
        
int j 0;
        
int tmp;
        while (
swapped) {
            
swapped false;
            
j++;
            for (
int i 0nums.length ji++) {
                if (
Math.abs(nums[i]) < Math.abs(nums[1])) {
                    
tmp nums[i];
                    
nums[i] = nums[1];
                    
nums[1] = tmp;
                    
swapped true;
                }
            }
        }
        return 
Arrays.asList(nums);
    }

    private static 
long gcd(long along b// Greatest Common Divisor
    
{
        while (
0) {
            
long temp b;
            
b;
            
temp;
        }
        return 
a;
    }

    private static 
long gcd(Integer[] input) {
        
long result input[0];
        for (
int i 1input.lengthi++)
            
result gcd(resultinput[i]);
        return 
result;
    }

    private static 
long lcm(long along b// Least Common Multiple
    
{
        return 
* (gcd(ab));
    }

    private static 
long lcm(Integer[] input) {
        
long result input[0];
        for (
int i 1input.lengthi++) {
            if ((
input[i] == || input[0] == 0)
                    || (
input[i] < || input[0] < 0))
                break;
            
result lcm(resultinput[i]);
        }
        return 
result;
    }

    private static List<
Integerlist1 = new LinkedList<Integer>();
    private static List<
Integerlist2 = new LinkedList<Integer>();

    public static List<
IntegerprimeNums(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<= Math.sqrt(n); += 2) {
            if (
== 0) {
                
prime false;
                break;
            }
        }
        return (
!= && prime && 2) || == 2;
    }

    private static 
Map<IntegerIntegermap = new TreeMap<IntegerInteger>();
    private static 
Map<IntegerIntegerinvMap = new TreeMap<IntegerInteger>();

    private static 
void put(Integer keyInteger value) {
        
map.put(keyvalue);
        
invMap.put(valuekey);
    }

    private static 
void buildPascalTriangle(int numberint rows) {
        for (
int y 0rowsy++) {
            
int c number;
            for (
int w 0rows yw++) {
                
System.out.print("   ");
            }
            for (
int x 0<= yx++) {
                
System.out.print("   " " ");
                
* (x) / (1);
            }
            
System.out.println();
        }
    } 
m1st вне форума Ответить с цитированием
Старый 15.03.2012, 18:01   #2
m1st
Пользователь
 
Регистрация: 15.09.2010
Сообщений: 21
Лампочка

PHP код:
    public static void main(String[] args) {
        
System.out.print("Сколько целых чисел вы собираетесь ввести? ");
        
Scanner in = new Scanner(System.in);
        
int size in.nextInt();
        if (
size == 0) {
            
System.out.print("Программа завершена.");
            
System.exit(0);
        }
        
Integer[] numbers = new Integer[size];
        
System.out.print("Введите целые числа через пробел "
                
"и нажмите <Enter>: ");
        for (
int i 0sizei++)
            
numbers[i] = in.nextInt();

        
// 1. Четные и нечетные числа
        
for (int i 0sizei++) {
            if (
numbers[i] % == 0)
                
list1.add(numbers[i]);
            else
                
list2.add(numbers[i]);
        }
        
System.out.println("Чётные числа: " list1);
        
System.out.println("Нечётные числа: " list2);

        
// 2. Наибольшее и наименьшее число.
        
List<IntegerlistFromArray Arrays.asList(numbers);
        
System.out.println("Наибольшее число: " max(listFromArray));
        
System.out.println("Наименьшее число: " min(listFromArray));

        
// 3. Числа, которые делятся на 3 или на 9.
        
System.out.println("Числа, которые делятся на 3: "
                
divider(3numbers));
        
System.out.println("Числа, которые делятся на 9: "
                
divider(9numbers));

        
// 4. Числа, которые делятся на 5 и на 7.
        
System.out.println("Числа, которые делятся на 5: "
                
divider(5numbers));
        
System.out.println("Числа, которые делятся на 7: "
                
divider(7numbers));

        
// 5. Элементы, расположенные методом пузырька по убыванию модулей. //
        
System.out.println("Элементы, расположенные методом пузырька "
                
"по убыванию модулей: " bubbleRevSortByMod(numbers));

        
// 6. Все трехзначные числа, в десятичной записи которых нет одинаковых
        // цифр.
        
String num;
        
list1.clear();
        for (
int i 0sizei++) {
            
num numbers[i].toString();
            if (
num.length() == && num.charAt(0) != num.charAt(1)
                    && 
num.charAt(1) != num.charAt(2)
                    && 
num.charAt(0) != num.charAt(2))
                
list1.add(numbers[i]);
        }
        
System.out.println("Все трехзначные числа, "
                
"в десятичной записи которых нет одинаковых цифр: " list1);

        
// 7. Наибольший общий делитель и наименьшее общее кратное этих чисел.
        
System.out.println("Наибольший общий делитель: " gcd(numbers));
        
System.out.println("Наименьшее общее кратное: " lcm(numbers));

        
// 8. Простые числа.
        
System.out.println("Простые числа: " primeNums(numbers));

        
// 9. Отсортированные числа в порядке возрастания и убывания.
        
list1.clear();
        
list1.addAll(listFromArray);
        
sort(list1);
        
System.out.println("Отсортированные числа в порядке возрастания: "
                
list1);
        
reverse(list1);
        
System.out
                
.println("Отсортированные числа в порядке убывания: " list1);

        
// 10. Числа в порядке убывания частоты встречаемости чисел.
        
for (Integer i numbers) {
            
put(ifrequency(listFromArrayi));
        }
        
System.out.println("Числа в порядке убывания частоты встречаемости "
                
"чисел <Число=Встречаемость>: " revSortByVal(map));

        
// 11. “Счастливые” числа.
        
list1.clear();
        for (
int i 0sizei++) {
            
num numbers[i].toString();
            if (
num.length() == 4
                    
&& num.charAt(0) + num.charAt(1) == num.charAt(2)
                            + 
num.charAt(3))
                
list1.add(numbers[i]);
        }
        
System.out.println("“Счастливые” числа (Σ 1-ой пары чисел "
                
"= Σ 2-ой пары): " list1);

        
// 12. Числа Фибоначчи: f0 = f1 = 1, f (n) = f (n–1) + f (n–2).
        
list1.clear();
        for (
int i 2size 2i++) {
            if (
numbers.length 3)
                break;
            else if (
numbers[2] == numbers[i] + numbers[1])
                
list1.add(numbers[i]);
        }
        
System.out.println("Числа Фибоначчи: " list1);

        
// 13. Числа-палиндромы, значения которых в прямом и обратном порядке
        // совпадают.
        
List<StringBuilderpalindromes = new LinkedList<StringBuilder>();
        for (
int i 0sizei++) {
            
StringBuilder s = new StringBuilder(numbers[i].toString());
            if (
s.toString().equals(s.reverse().toString()))
                
palindromes.add(s);
        }
        
System.out.println("Числа-палиндромы: " palindromes);

        
// 14. Элементы, которые равны полусумме соседних элементов.
        
list1.clear();
        
Integer[] int2;
        
int2 numbers.clone();
        for (
int i 1int2.length 1i++) {
            if (
int2.length 3)
                break;
            if (
int2[i] == (int2[1] + int2[1]) / 2)
                
list1.add(int2[i]);
        }
        
System.out.println("Элементы, которые равны полусумме соседних "
                
"элементов: " list1); 
m1st вне форума Ответить с цитированием
Старый 15.03.2012, 18:02   #3
m1st
Пользователь
 
Регистрация: 15.09.2010
Сообщений: 21
По умолчанию

PHP код:
        /**
         * 15. Период десятичной дроби p = m/n для первых двух целых
         * положительных чисел n и m, расположенных подряд.
         * 
         * @author RodionGork
         */
        
long pqrlti;
        for (
int n 0size 1n++)
            if (
numbers.length 2)
                break;
            else if (
numbers[n] >= && numbers[1] >= 0) {
                
numbers[n];
                
numbers[1];
                
p;
                for (
0qi++)
                    
= (10) % q;
                
r;
                
0;
                do {
                    
= (10) % q;
                    
l++;
                } while (
!= t);
                
p;
                
System.out.print("Период десятичной дроби p = m/n для "
                        
"первых двух целых положительных чисел n и m, "
                        
"расположенных подряд: 0.");
                for (
0li++)
                    
= (10) % q;
                for (
0!= ti++) {
                    
System.out.print(10 q);
                    
= (10) % q;
                    
= (10) % q;
                }
                
System.out.print('(');
                for (
0li++) {
                    
System.out.print(10 q);
                    
= (10) % q;
                }
                
System.out.println(')' " = " "/" q);
                break;
            }

        
// 16. Построить треугольник Паскаля для первого положительного числа.
        
list1.clear();
        for (
int u 0sizeu++)
            if (
numbers[u] >= 0) {
                
list1.add(numbers[u]);
                
System.out
                        
.print("Сколько строк треугольника Паскаля для числа "
                                
list1.get(0) + " отображать? ");
                
int rows in.nextInt();
                
buildPascalTriangle(list1.get(0), rows);
            }
    }

m1st вне форума Ответить с цитированием
Старый 17.04.2012, 00:01   #4
m1st
Пользователь
 
Регистрация: 15.09.2010
Сообщений: 21
По умолчанию

Код наиболее последней версии переехал сюда: http://ideone.com/a72cO
m1st вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Покритикуйте решение=) V0R0N91 Общие вопросы по Java, Java SE, Kotlin 2 29.02.2012 15:06
выделить дробную часть числа unbanned Паскаль, Turbo Pascal, PascalABC.NET 12 18.06.2011 22:23
Дробная часть числа Иллидан Общие вопросы C/C++ 11 31.05.2011 16:23
Старшая и младшая часть числа ImmortalAlexSan Общие вопросы Delphi 1 26.10.2010 21:12
отделить дробную часть от числа |v||v|<<IpShot Общие вопросы C/C++ 19 24.09.2008 18:21