Jawa / Говнокод #19524 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  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
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
package practice;
import java.io.IOException;
import static java.lang.System.in;
import java.util.Scanner;

public class Practice {
        static int j = 0;

        public static char [] c() {
        String s;
        Scanner reader = new Scanner(in);
        s = reader.next();
        byte n = (byte) (s.length()+5);
        char [] c;
        c = new char[n];
        for(int i = 1;i<=s.length();i++) {
            c[i] = s.charAt(i-1);
        }
        return c;
        }

        public static int slag(char [] c) throws IOException {
            int  i = 0;
            j++;
            if(c[j]>='0' && c[j]<='9') {
               while(c[j]>='0' && c[j]<='9') {
               i = i*10 + c[j] - '0';
               j++;
               }
            }
            switch (c[j]) {
            case '+':
            case '-':
                return sum(c,i);
            case '(':
                return slag(c);             
            case ')':
              return i+sum(c,i)+slag(c);   
            case '.':
                return i;
            default:
                break;
        }
            return i;
        }


        public static int sum(char [] c,int i) throws IOException {
            if(c[j]=='+')
            return  i+slag(c);
        else
            if(c[j]=='-')
                return i-slag(c);
        return 0;
    }




    public static void main(String[] args) throws IOException {
        char [] c;
        c = c();
        System.out.println(slag(c));
    }
}

Рекурсивный String-калькулятор . операции + - .
Школьный практикум.
вместо посимвольного считывания используется массив .
Как реализовать посимвольное считывание в java .
Есть ли функция типа cin или read ?

Запостил: vanpot vanpot, (Updated )

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

    • Кодировка собьётся. System.in.read() возвращает byte, его нельзя приводить к char без перекодирования системной кодировкой, что и делает InputStreamReader.
      Ответить
      • А прыщеговно юникод из сосноли читать не умеет? даже прыщезмей и то знает про кодировки std*
        Ответить
        • всё прекрасно умеет

          просто стрим -- штука байториентированная (вот прямо как стриммер))
          а чтобы превратить байты в буквы нужен ридер (ну и кодировка конечно)

          просто люди думают что им в поток буковки текут
          а в компьютере нету буковок
          там есть байты
          Ответить

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

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8