Показать сообщение отдельно
  #8 (permalink)  
Старый 28.05.2013, 10:43
Аватар для rgl
rgl rgl вне форума
Профессор
Отправить личное сообщение для rgl Посмотреть профиль Найти все сообщения от rgl
 
Регистрация: 28.02.2011
Сообщений: 349

Сообщение от DartVeider Посмотреть сообщение
Подскажите, пожалуйста. Не знаю язык (буду учить, честно) но нужно сейчас решить такую проблему

На входе:
What is 14+5?

На выходе надо дать ответ. Я понимаю алгоритм: вытащить то, что будет после второго пробела и до +, потом - то, что после + и до пробела. Т.к. числа могут быть и однозначные, и двухзначные. Подскажите, с какими функциями работать, пожалуйста.
var s = "What is 14+5?";

function f( s ) {
  var t = s.match( /(\d+)([-+*\/])(\d+)/ );
  if( ! t )
    return null;
  t[1] = parseInt( t[1] ); t[3] = parseInt( t[3] );
  switch( t[2] ) {
    case "+":
      return t[1] + t[3];
    case "-":
      return t[1] - t[3];
    case "*":
      return t[1] * t[3];
    case "/":
      return t[1] / t[3];
  }
}

alert( f( s ) );


Сообщение от tsigel Посмотреть сообщение
DartVeider,
replace()
split()
parseInt()
При чем тут split() и replace() ???
Ответить с цитированием