问题标题: 酷町堂:3911 神奇公式2

0
0
已解决
王光裕
王光裕
资深光能
资深光能

3911   神奇公式2

题目描述 Description

现在有一个数列的通项公式如下图所示,需要你求出A[N]的值。

输入描述 Input Description

一行,一个整数,N

输出描述 Output Description

一个整数,A[N]的结果

样例输入 Sample Input

 

10

样例输出 Sample Output

 

3

数据范围及提示 Data Size & Hint

n≤500

 

代码:

#include<iostream>
#include<cstring>
#include<cmath>
#include<string>
#include<cstdio>
#include<algorithm>
using namespace std;
int sq(int n);
int main()
{
    int f;
    cin>>f;
    cout<<sq(f);
    return 0;
}
int sq(int n)
{
    if(n==0)
        return 0;
    if(n==1)
        return 1;
    if(n>1)
        return sq(n)+sq(n+1);
}


0
已采纳
桑烁
桑烁
高级光能
高级光能

函数错了

不是n>1

而是判断n%2==0,n%2==1

2i表示偶数,2i+1则是奇数

0
陈胤廷
陈胤廷
修练者
修练者
int sq(int n)
{
    if(n==0)
        return 0;
    if(n==1)
        return 1;
    if(n>1)
        return sq(n)+sq(n+1);
}

应该改为:

int gs(int n)
{
     if(n==1||n==0)
           return n;
      if(n%2==0)
            return gs(n/2);
       return gs(n/2)+gs(n/2+1);
}

0
我要回答