#Z023. 表达式求值

表达式求值

题目描述

给定一个仅包含数字 1199 的字符串 SS,请在 SS 中分别插入 1 个加号(+)、2 个加号。

注:

1)加号不能出现在 SS 中第一位数字的前面或者最后一位数字的后面;

2)两个加号的位置不能相邻。插入加号后的字符串可以看做是一个加法表达式,请找出所有可能出现的表达式,并输出所有表达式结果的总和。

例 1:S = "1234";分别在字符串 "1234" 中插入 1 个加号、2 个加号,插入加号的表达式如下: 1)当插入 1 个加号时,表达式有 1 + 234、12 + 34、123 + 4, 计算结果依次为 235、46、127;

2)当插入 2 个加号时,表达式有 1 + 2 + 34、1 + 23 + 4、12 + 3 + 4,计算结果依次为 37、28、19;这些结果的总和为 492(235 + 46 + 127 + 37 + 28 + 19)。

例 2:S = "111",分别在字符串 "111" 中插入 1 个加号、2 个加号,插入加号的表达式如下:

1)当插入 1 个加号时,表达式有 1 + 11,11 + 1,计算结果依次为 12、12;

2)当插入 2 个加号时,表达式有 1 + 1 + 1,计算结果为 3;这些结果的总和为 27(12 + 12 +3)

输入

输入一个仅包含数字 1 到 9 的字符串 SS

输出

输出一个整数,表示所有可能出现的表达式的结果的总和。

1234
492

提示

3S15 3 \leq |S| \leq 15

|S|表示字符串SS的长度

可以使用函数stoll(s)获得s的long long类型的整数