A + B
título Descrição
Eu li duas inteiro positivo menor que A e B 100 para calcular A + B Note que :. A e B cada dígito é dado pela palavra correspondente Inglês.
Digite uma descrição:
entrada de ensaio compreendendo uma pluralidade de casos de teste, cada caso de ensaio por linha, o formato de "A + B =", existe um espaço entre duas cordas adjacentes do intervalo. Quando A e B, enquanto a extremidade de entrada é 0, os resultados correspondentes não são de saída.
Descrição Saída:
Uma linha de saída para cada caso de teste, isto é, o valor de A + B.
exemplo 1
entrada
um + = dois , três, quatro, cinco, seis + = zero sete + oito nove = nulos + nulas =
exportação
3 90 96
idéias de solução de problemas: fácil de operar com um mapa valores armazenamento pode discutir quatro casos.
/ * * @Qusetion: https://dwz.lc/iiYuaA2eO * @author:一届书生 * @Date: 2020/03/19 10:13:14 * @LastEditTime: 2020/03/21 23:54:26 * / #include <iostream> #include <string> #include <map> using namespace std; carvão animal s [50]; int main () { mapa <string, int> pf {{ "um", 1}, { "dois", 2}, { "três", 3}, { "quatro", 4}, { "cinco", 5}, { "seis", 6}, { "sete", 7}, { "oito", 8}, { "nove", 9}, { "zero", 0}}; while (recebe (s)) { corda t [10]; para (int i = 0, j = 0; i <50; t [j] + = s [i]; } If (t [0] == t [2] && t [2] == "zero") retornar 0; // * + * if (t [1] == "+" && t [3] [0] == '=') cout << pf [t [0]] + p.f [t [2]] << endl; // * + ** if (t [1] == "+" && t [4] [0] == '=') cout << pf [t [0]] + p.f [t [2]] * 10 + pf [t [3]] << endl; // ** + * if (t [2] == "+" && t [3] [0] == '=') cout << pf [t [0]] 10 * + pf [t [1] ] + p.f [t [3]] << endl; // ** + ** if (t [2] == "+" && t [5] [0] == '=' ) Cout << pf [t [0]] 10 * + pf [t [1]] + p.f [t [3]] * 10 + pf [t [4]] << endl; } return 0; }