Как подстроить элементы как 2 группы - PullRequest
0 голосов
/ 15 марта 2020

Я пытаюсь сделать операцию sqrt с нуля. Мне удалось извлечь два элемента из строки, но я застрял после этого.

int number = 1234 , the_two_numbers;
string z = Convert.ToString(number);
int x = z.Length;
for(int i =0 ; i < x ; i++){
  if(i % 2 == 0){
    the_two_numers = Convert.toInt32(z.Substring(i , i+ 1));
  }
}

Как мне получить значение the_two_numbers как 12 / 24?

Если я сделал какие-то другие ошибки на пути, пожалуйста, игнорируйте их; Я новичок ie. Остальная часть моей программы работает хорошо:)

1 Ответ

0 голосов
/ 16 марта 2020

Предполагая, что вы хотите разделить это на два разных числа на основе нечетных и четных индексов, т. Е. 13 и 24 в тестовом значении, есть три проблемы с вашим кодом:

  1. Вы можете хранить только один номер в int; вам понадобится int[] для хранения двух чисел;
  2. Вы в настоящее время перезаписываете предыдущее значение числа вместо его объединения;
  3. Второй параметр Substring() - это число символов, которые вы хотите получить после начального индекса, поэтому он должен быть 1, а не i+1.

Чтобы решить эти проблемы, вам, вероятно, понадобится что-то похожее на:

var number = 1234;
var the_two_numbers = new int[2];
string z = Convert.ToString(number);
for (int i=0; i<z.Length; i++) {
  the_two_numbers[i%2] = Convert.ToInt32(the_two_numbers[i%2].ToString() + z.Substring(i, 1));
}

Обратите внимание на следующее:

  1. Я сделал the_two_numbers массив вместо int;
  2. Вместо условного исключения нечетных индексов, я вместо этого использую это для определить, какой индекс the_two_numbers записать в ([i%2]); и
  3. Вместо просто , устанавливающего значение в текущем индексе для переменной, я объединяю его с любыми предыдущими значениями.

С the_two_numbers, установленным как массив, вы можете затем получить первое значение (13), используя the_two_numbers[0], а второе значение (24), используя the_two_numbers[1].

...