初中生有来问问题了(关于递归)
  • 板块灌水区
  • 楼主sunxhx
  • 当前回复14
  • 已保存回复14
  • 发布时间2022/2/15 20:47
  • 上次更新2023/10/28 08:27:04
查看原帖
初中生有来问问题了(关于递归)
670154
sunxhx楼主2022/2/15 20:47

题目如下:



题目背景 老Q在小Q等人的帮助下,写出了全排列代码,他异常兴奋,于是写了一个公式。 f(n)=max(f(n-3),f(n-1)+f(n-2)); 他知道f(1)=1/2,f(2)=1/4,f(3)=1/8,那么f(n)=?

注:f(0)=0

题目描述 通过数组求解问题。(详细内容见题目背景)

输入格式 输入一个正整数n。

输出格式 输出一个数,f( n )。

输入输出样例 输入 #1复制 10 输出 #1复制 7.5 说明/提示 对于20%的数据,n<=5

对于40%的数据,n<=25

对于100%的数据,n<=60


由于我自学的递归,代码出了点问题,如下```c #include<bits/stdc++.h> using namespace std; double sum; void f(int n) { if (n == 1) { sum += 0.5; return ; } else if (n == 2) { sum += 0.25; return ; } else if (n == 3) { sum += 0.125; return ; } else { sum = sum + max(f(n - 3), (f(n - 1) + f(n - 2)));//这行是无效表达式 return ; } } int main () { int n; cin >> n; f(n); cout << sum; return 0; }


有大佬能给我附上代码吗
2022/2/15 20:47
加载中...