首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >握手方的递归调用

握手方的递归调用
EN

Stack Overflow用户
提问于 2020-10-15 09:03:56
回答 1查看 272关注 0票数 0

目前,我正在做一个递归赋值,我需要计算情侣之间握手的次数。在这个由N对情侣组成的聚会中,只有一个性别(男性或女性)可以主动与每个人握手。示例如下:

到目前为止,这是我的递归方法,我真的被困在这里了,你们能帮我吗

代码语言:javascript
复制
public int solve(int n){
        if(n==1){
            return 0;
        } else{
            return ((n*2)-2)+solve(n-1);
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-15 09:32:13

我将按照图中所示,假设女性是发起握手的人。

假设我们有N对情侣:

第一对中的雌性会与其他每一对雌性握手,结果是N-1次握手。来自第一对夫妇的雌性将与每一个不是她自己的伴侣的男性握手,结果是N-1握手。第一对夫妇中的男性将与其他女性握手,结果是N-1次握手。第一对中的雄性不会与任何一对雄性握手,因为他们不能主动握手。

因此,第一对组合贡献的总抖动次数是3(N-1)。然后,您可以递归到下一对,传入N-1作为参数,因为第一对握手已经被计算在内。诸若此类。

结果是:

代码语言:javascript
复制
public int solve(int n){
   if(n <= 1) return 0;
   return 3 * (n - 1) + solve(n-1);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64363448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档