1. C# / Говнокод #11287

    +137

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    public class Problem33 {
        public static void main(String arg[]){
            long l1 = Calendar.getInstance().getTimeInMillis();
            int amount = 0;
            for(int a=1; a<=9; a++){
                for(int b=1; b<=9; b++){
                    for(int c=1; c<=9; c++){
                        for(int d=1; d<=9; d++){
                            int numerator = a*10+b;
                            int denominator = c*10+d;
                            double fraction = 1.0*numerator/denominator;
                            if(numerator < denominator){
                                if(
                                  (a==c && (1.0*b/d == fraction)) ||
                                  (a==d && (1.0*b/c == fraction)) ||
                                  (b==c && (1.0*a/d == fraction)) ||
                                  (b==d && (1.0*a/c == fraction))
                                  ){
                                    amount++;
                                    System.out.println(a + "" +  b + "/" + c + "" + d);
                                 }
                            }
                        }
                    }
                }
            }
            System.out.println(amount);
            long l2 = Calendar.getInstance().getTimeInMillis();
            System.out.println("Time: " + (l2-l1) + "ms");
        }
    }

    http://projecteuler.net/problem=33
    http://projecteuler.net/thread=33

    Запостил: TheHamstertamer, 24 Июня 2012

    Комментарии (19) RSS

    • Моё говнорешение: http://ideone.com/hpa9m
      Смотрю на код сейчас и мало что понимаю.
      Ответить
    • > double fraction = 1.0*numerator/denominator;
      > 1.0*b/d == fraction

      > double
      > ==
      Ответить
      • Ага, зачем тут вообще даблы :)
        a/b == c/d => a*d == b*c но автор видимо этого не знал...
        Ответить
    • что делает ява в моих сишарпах?
      Ответить
      • На J# смахивает.
        Ответить
        • J#.

          Я представил себе J на платформе .net, и мне стало очень страшно. А потом вспомнил, что это всего лишь ява.
          Ответить
      • Извиняюсь, перепутал. Код на джаве визуально похож на сишарп.
        Ответить
      • Почему не по станадарту:
        "Где здесь {0}, {1}?", LangName, UserName
        Ответить
        • Приверженцев мелкософта не волнуют стандарты. Не будь унылым говном, быть креативным!
          Ответить
          • fix: Не будь унылым {0}, будь креативным {0}!
            Ответить
          • >Приверженцев мелкософта не волнуют стандарты.
            Дык на то и был намек!
            Ответить
    • Прочитал как
      System.out.println("Time: " + (12-11) + "ms");
      Долго думал.
      Ответить
      • Ага. Переменные l и I это зло.
        Ответить
        • В VS есть такое предупреждение, работает когда ставишь малое l на конце константы long. Студия говорит, что лучше бы сделать это в верхнем регистре, а ни то можно попутать с единицей.
          Ответить
          • Дожились. Обычно наболелая шишка на лбу служит предупреждением.
            А "с" и "с" - она не различает?
            Ответить
            • Можно обфускацию кода так проводить - составив все идентификаторы из одинакового набора букв "о", "с" и "е".
              осе осe(осе оcе, оce **oсе) {
                ...
              }
              Ответить

    Добавить комментарий