c# - 递归函数来确定所需的操作以达到给定的结果
问题描述
我有一个小问题,我现在似乎无法解决问题。有人可以帮忙吗?
基本上听起来像这样:
编写一个递归函数,确定可以在 1 到 N>=2 的整数之间双关的运算符(+ 和 -)的所有组合,以便表达式的结果是给定的数字 X。如果没有组合,则打印“N /一个”。
输入示例:
6
3
输出应该是:
1 + 2 + 3 - 4 - 5 + 6 = 3
1 + 2 - 3 + 4 + 5 - 6 = 3
1 - 2 - 3 - 4 + 5 + 6 = 3
解决方案
此控制台应用程序示例将解决您的问题:
class Program
{
static void Main(string[] args)
{
int result = Search(2, 6, 1, 3);
Console.WriteLine(result);
}
private static int Search(int start, int end, int current, int searched)
{
if (start > end)
{
return Convert.ToInt32(current == searched);
}
return Search(start + 1, end, current + start, searched) + Search(start + 1, end, current - start, searched);
}
}
推荐阅读
- c# - 在c#中使用ftp下载文件
- ajax - ajax成功未显示在div中
- mongodb - 带有二进制数据的 RESTHeart 和 Retrofit POST 嵌入文档
- python - 在同一行的“for”中编译“if”
- java - 所有者如何从 pubsub 节点取消订阅追随者
- c - C初始化的全局结构与未初始化的成员整数定义了beheviour?
- java - Maven 构建失败
- r - 鼠标中的错误:pool():不再适用于 censReg/tobit(“此列表无法识别浏览方法”)
- swift - 隐藏的导航栏和更改的应用程序流程 - 迅速
- java - recyclerview根据item数执行次数时Android bundle值为null