0

我正在制作语音命令计算器..in that I prestored some of voicedata of
(1 to 9),(10 ,20 --90),(hundred,thousand,lakh)。如果我想计算 1234+45678
我需要说“”1234 加 45678”
我的语音识别系统将其识别为 {1,1000,2,100,40,4,}+{ 40,5,1000,6,100,70,8}
但我不知道如何编写程序来计算上述问题。我希望你能理解我的问题并找到一个更好的解决方案。我已经计划了一个解决方案,但是它在第一个支架上有一些环孔

规则 1:将连续数字相乘并相加,
规则 2:如果发现连续组中的第一个数字是 10,20,30,40...90。它将添加到该连续组中的下一个数字乘法
规则3:它将继续直到找到像 (+,-*,/) 这样的符号,像这样 (1*1000)+(2*100)+(30+4)=1234 类似的第二个括号并添加结果

我对上述过程不满意,所以请尝试找到更好的解决方案。我会非常感谢你。

如果我的问题不清楚,请将其留在评论中,我会尽力解释我的水平。

4

1 回答 1

0

数字 11-13 听起来不同,但我假设您在“十”代码中处理它。

无论如何,第一次通过每个数组应该产生交替的“数字”和“乘数”对,这样

[40, 5, 1000, 6, 100, 70, 8]

变成

[45, 1000, 6, 100, 78]

然后你可以做你的乘法和加法。但是稍微修改一下规则,让它测试下一个数字是否能被 10 整除。像这样:

int i = 0;
int temp_result = 0;
while(i <= size_of_array){
    if(i == size_of_array - 1){
        temp_result = temp_result + array[i];
    }
    else{
        if(array[i+1] % 10){
            temp_result = temp_result + array[i]*array[i+1];
        }else{
            temp_result = temp_result + array[i];
        }
    }
    i = i + 2;
}
于 2013-08-01T01:55:40.233 回答