原文:

给定一个整数 n,任务是使用从 1 到 n 的所有数字以及二进制运算符 、–、和/,打印所有可能的算术表达式。 例:*

输入: n = 2 输出: 1 2,1-2,1/2,12 输入: n = 3 输出: 1 2 3,1 2-3,1 2/3,1 23,1-2 3,1-2-3,1-2/3,1-2*3 1/2 3,1

进场:

  • 我们将创建一个长度为=n n–1的字符数组,因为要使带有 n 个操作数的表达式有效,我们需要 n-1 个运算符

  • 迭代数组,将数字放在偶数位置,而将符号放在奇数位置,并递归调用函数。

  • 如果字符数等于数组长度,则打印数组。

以下是上述方法的实现:

卡片打印处理机(card print processor 的缩写)

// c   program to print all the
// expressions for the input value
#include
#include
using namespace std;
// function to print all the
// expressions using the number
void printrecursive(char *str,int arr[],
                 int i, int n,char *res,
                 int j, int len,int ln)
{
    // termination condition
    if(j==len)
    {
        res[j]='\0';
        cout<

output: 

1 2
1-2
1/2
1*2