Я попробовал решение по Тобинской радости и викихаукам, и оба они производят результат 580085, который является неправильным здесь, это мое решение, хотя и очень неуклюжие:
import java.util.*;
class ProjEu4
{
public static void main(String [] args) throws Exception
{
int n=997;
ArrayList<Integer> al=new ArrayList<Integer>();
outerloop:
while(n>100){
int k=reverse(n);
int fin=n*1000+k;
al=findfactors(fin);
if(al.size()>=2)
{
for(int i=0;i<al.size();i++)
{
if(al.contains(fin/al.get(i))){
System.out.println(fin+" factors are:"+al.get(i)+","+fin/al.get(i));
break outerloop;}
}
}
n--;
}
}
private static ArrayList<Integer> findfactors(int fin)
{
ArrayList<Integer> al=new ArrayList<Integer>();
for(int i=100;i<=999;i++)
{
if(fin%i==0)
al.add(i);
}
return al;
}
private static int reverse(int number)
{
int reverse = 0;
while(number != 0){
reverse = (reverse*10)+(number%10);
number = number/10;
}
return reverse;
}
}
Это - превосходный вопрос.
первая причина "почему нет?" При использовании платформы журналирования тогда Вы получите выгоду пригодности для обслуживания использования чего-то уже упакованного.
вторая причина состоит в том, что вход является тонким. Различные потоки, сессии, классы и экземпляры объектов могут все сыграть роль во входе, и Вы не хотите должными быть понимать эту проблему на лету.
третья причина состоит в том, что можно найти узкое место производительности в коде. Выяснение, что Ваш код является медленным, потому что Вы пишете в файл, не буферизуя или Ваш жесткий диск, исчерпало дисковое пространство, потому что регистратор не делает трансформации и сжимается могут быть невыносимы, старые файлы.
четвертая причина состоит в том, что можно хотеть добавить к системному журналу или записать в базу данных, или в сокет, или в различные файлы. Платформам встроили эту функциональность.
, Но действительно, первый ответ является лучшим; существует очень мало преимущества для записи Вашего собственного, и целый набор недостатков.
Вы могли бы хотеть переключиться для входа к дб для некоторого сообщения или системе предупреждения, которая разбивает на страницы бедного человека на поддержке
, Что еще более важно, хотя, большинство платформ журналирования позволяет Вам определять loglevel различных классов, таким образом, Вы не должны сокращать новый двоичный файл каждый раз, когда Вы хотите больше/меньше регистрироваться (что подробный вход для ошибки, которую Вы просто определили в производстве)
сайт Log4Net имеет больше детали
Одним словом: гибкость. Log4xxx дает Вам способность сделать различные уровни входа, зарегистрировать различные модули кода в различные файлы, и можно ли зависеть от него, чтобы быть надежными, какая странная ситуация это поражает (что сделает регистратор, если диск будет вне пространства?)
В зависимости от того, насколько умный Ваша собственная реализация системы регистрации.
В Java, если бы Вы хотите наследовать типы журнала, и т.д., это могло бы быть слишком много стычки, и Вы предпочли бы стороннюю программу как Log4J. Я предполагаю, что существуют подобные вещи для C#. Так же, если Вы хотите определить уровень журнала из командной строки.
, Если Вы просто хотите направить весь свой System.out и управлять, печатаются ли они каждый раз, когда Вы компилируете, Ваш собственный регистратор сделал бы очень хорошо.
Платформы журналирования предлагают гибкость и препятствуют тому, чтобы Вы изобрели велосипед. Я знаю, что до полусмерти просто добавить в файл на каком-либо современном языке, но Ваш регистратор собственной разработки имеет несколько целей? Можно ли стать входящими в систему и прочь во времени выполнения? Почему рискуют спущенная шина, когда эти колеса доступны бесплатно?
Что-то другие комментарии опустило: если уже существует библиотека, которая делает то, что Вы хотите, она сохраняет Вас имеющий необходимость написать код .
Возможно Вы играете семантику здесь: мне "платформа журналирования" обычно немного больше, чем класс, который пишет сообщения журнала в файл... поэтому, что Вы сделали, запись Ваша собственная платформа журналирования. Учитывая, что Вы сделали так, существует, очевидно приблизительно точка в "использовании Платформы журналирования"!
В конечном счете Вы испытываете необходимость, чтобы удостовериться, что это обрабатывает параллельный вход правильно (блокирующий поток вывода), может зарегистрироваться в файл, системный журнал, и т.д., может сделать прокрутку журнала и так далее. Можно сохранить себя что усилие при помощи чужого хорошо протестированного кода.
$.serialize
, а не JSON.stringify
– Josh Smeaton
25 June 2012 в 00:01