Android - вычисление и хранение ответа арифметического выражения - PullRequest
0 голосов
/ 27 февраля 2012

Какой самый лучший способ получить ответ на этот вопрос, используя случайные числа и случайные операторы.

  editTextEquation.setText(random1 +(String.valueOf(ops[i1]) + random2 +     (String.valueOf(ops[i2])+ random3 + (String.valueOf(ops[i3])+ random4))));

Я показываю этот вопрос, а затем проверю ответ на ввод пользователя. Я предполагаю, что мне нужно сначала сохранить ответ. Буду очень признателен за любую помощь / совет.

Вот как я генерирую выражение:

 int random1 = (int)(Math.random()*100);
 int random2 = (int)(Math.random()*100);
 int random3 = (int)(Math.random()*200);
 int random4 = (int)(Math.random()*20);

 int min = 0;
 int max = 3;
 Random r = new Random();
 int i1 = r.nextInt(max - min);
 int i2 = r.nextInt(max - min);
 int i3 = r.nextInt(max - min);

 char[] ops = { '+', '-', '/', '*' };

 int answer;

Ответы [ 2 ]

1 голос
/ 27 февраля 2012

Как долго вам нужно держаться за ответ?

Если это только на короткое время, переменной будет достаточно.

Если вам это нужно надолго, рассмотрите возможность создания базы данных SQLite для ее хранения.Сгенерируйте идентификатор для вашего выражения и сохраните их в базе данных.Затем вы можете посмотреть их позже на досуге.

0 голосов
/ 27 февраля 2012

Если у вас есть только небольшие проблемы, например, только пара + и - и т. Д., Вы можете попробовать создать строку для ее представления и основную операцию для поиска ответа, например

public int calculate(int operation, int a, int b, int c) {
    if (operation ==1) {
        //must be all plus
        return a+b+c;
    }else if (operation ==2)
        //another case
        return a+b-c;
    }else if ( etc etc

}

public void displayQuestion(int operation, int a, int b, int c) {
   if(operation ==1) {
      System.out.println(a + " + " + b + " + " + c + " =");
   }else if( etc etc
}

Затем вы можете отобразить каждый вопрос и запросить ответ в зависимости от того, что это было. Это простой способ, который потребует от вас указания каждого конкретного случая. Вероятно, вы можете легко сделать это намного умнее, это быстрый простой способ, сделать это правильно (разобрать строку как математический запрос) немного сложнее, и мне нужно вернуться к моей реальной работе!

...