测试结果乘以加数减去可能的数字组

时间:2017-01-07 07:00:31

标签: c++ c

我想知道在任何组合中,整数A B C D是否能够产生整数结果。

例如,假设我有4个,6个,5个,11个,我需要的结果是40

程序将会很好(如果可以智能测试的话)通过所有选项进行蛮力,它可以看出这些数字是如何产生40的。

例如,程序将执行

4 + 6 + 5 + 11是40?无

4 + 6 + 5 - 11是40?无

4 + 6 - 5 - 11是40?无

...

4 * 6/5/11是40?无

4 * 6 + 5 + 11是40?是

然后它可以显示4 * 6 + 5 + 10,为您提供所需的结果。

如何让程序执行此操作?

之类的东西
for(x = 0; x < 4; x++) // four nested for loops
    if(x == 0)
        first mathematics sign = multiply
        ....
    if(x == 3) 
        first mathematics sign = subtract
    if(y == 0)
        second mathematics sign = multlply

可能正常吗?但是我如何为将来的计算位设置数学符号。

谢谢!

1 个答案:

答案 0 :(得分:1)

这是一个递归的 Brute-Force 实现

$('a').click(function(){
var object = $(this);
object.parent().parent().addClass('deleteHighlight', 1000, function() {
    $(this).find('td').each(function(index, element) {

    // Wrap each td inside the selected tr in a temporary div
    $(this).wrapInner('<div class="td_wrapper"></div>');

    // Fold the table row
    $(this).parent().find('.td_wrapper').each(function(index, element) {

    // SlideUp the wrapper div
    $(this).slideUp();

    // Remove padding from each td inside the selected tr
    $(this).parent().parent().find('td').each(function(index, element) {
        $(this).animate({
            'padding-top': '0px',
            'padding-bottom': '0px'
        }, function() {
            object.parentsUntil('tr').parent().remove();
        });
    });
});

<强>输出

  

发现:11-5 * 6 + 4

注意:输出不是运算符优先级意义上的表达式的表示;它只是从左到右操作。

这只是一个快速的实现,当然,没有人会在真正的scernario中使用它,因为它对于大型集合来说非常慢,正如您所要求的那样,“暴力”。