栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

函数计算 【题目描述】

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

函数计算 【题目描述】

函数计算
【题目描述】

有一个数列,f(n) = f(n-1) + f(n//2) + f(n//3),其中n//m表示整除。 如 3//2=1, 4//2=2, 5//2=2。

当n<=0时,有f(n) = 0。

现在告诉你f(1)=x,请计算f(n)的值.

请使用递归完成计算。

【输入描述】

输入两个整数x、n。

0 < x,n <= 20

【输出描述】

输出f(n)的值。

【样例输入】

1 6

【样例输出】

16

【注释】

样例含义

f(1) = 1

f(2) = f(1) + f(1) + f(0) = 1+1+0 = 2

f(3) = f(2) + f(1) + f(1) = 2+1+1 = 4

f(4) = f(3) + f(2) + f(1) = 4+2+1 = 7

f(5) = f(4) + f(2) + f(1) = 7+2+1 = 10

#include
#include 
int f(int n, int x)
{
    if (n <= 0)    //基本情况
        return 0;
    else if (n == 1) // 基本情况
        return x;
    else
        return f(n - 1,x) + f(n / 2,x)+f(n/3,x);
}
using namespace std;

int main()

{   

vectordata;
int tmp;
while(cin>>tmp){
    data.push_back(tmp);
    if(cin.get() == 'n') break;
}
    
    int c=f(data[1],data[0]);
    
    
    cout <
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/692398.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号