给定整数N,任务是使用从1到N的所有数字以及二进制运算符+,–,*和/来打印所有可能的算术表达式。
例子:
Input: n = 2
Output:
1+2, 1-2, 1/2, 1*2
Input: n = 3
Output:
1+2+3, 1+2-3, 1+2/3, 1+2*3, 1-2+3, 1-2-3, 1-2/3, 1-2*3
1/2+3, 1/2-3, 1/2/3, 1/2*3, 1*2+3, 1*2-3, 1*2/3, 1*2*3
方法:
- 我们将创建一个长度= n + n – 1的字符数组,因为要使具有n个操作数的表达式有效,我们将需要n-1个运算符。
- 迭代数组,将数字放在偶数位置,将符号放在奇数位置,然后递归调用函数。
- 如果字符数等于数组的长度,请打印数组。
下面是上述方法的实现:
// 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<
输出:
1+2
1-2
1/2
1*2