C语言问题,球帮,蟹蟹

请问这个应该怎么做?第一张是原题,第二张是机翻。是数字计算题目。这道题的意思应该是像图上那样将数字按照规则排列出来,然后题目让我们假设输入最大值是46。请帮我编写1下,10000分蟹蟹。

img

img

更改后的程序如下:(DevC++编写)

#include <stdio.h>

int digui(int k)
{
    int result;
    if(k==1)
    {
        result=1;
        return result;
    }
    else if(k==2)
    {
        result=1;
        return result;
    }
    else
    {
        result=digui(k-1)+digui(k-2);
        return result;
    }        
}

int main()                      //青蛙跳 
{
    int n,result;
    printf("欢迎来到斐波那契小游戏\n");
    printf("请输入项数:\n");
    scanf("%d",&n);
    result=digui(n);
    printf("该项为:");
    printf("%d",result);
    return 0;        
}

实现一次输入多个数字,更改后如下:

#include <stdio.h>

int digui(int k)                     
{
    int result;
    if(k==1)
    {
        result=1;
        return result;
    }
    else if(k==2)
    {
        result=1;
        return result;
    }
    else
    {
        result=digui(k-1)+digui(k-2);
        return result;
    }        
}

int main()                  //斐波那契数列,输入的数不仅仅一个,例如输入4,8,15,应该输出第4、8、15项,更改一下函数即可 ,输入的数用数组储存 
{
    int n,m[100];           //假设最多输入100个数字 
    printf("欢迎来到斐波那契小游戏\n");
    printf("请输入项数:\n");
    scanf("%d",&n);
    printf("请输入每一项的项数:\n");
    for(int i=0;i<n;i++)
    {
        scanf("%d",&m[i]);
    }
    //result=digui(n);
    printf("结果依次为为:\n");
    for(int i=0;i<n;i++)
    {
        int jieguo=digui(m[i]);
        if(jieguo!=0)
        {
            printf("%d",jieguo);
            printf("  ");
        }        
    } 
    return 0;        
}

这次的解答应该比较符合要求,你可以看看

回答:不是很理解这个问题的输入输出,斐波那契很经典,代码如下(使用DevC++编写)

#include <iostream>
using namespace std;

void feibo()
{    
    double a=1,b=1;
    int n;
    cout<<"请输入项数:(即你想求第几项)"<<endl;
    cin>>n;
    double result[n];
    for(int i=0;i<n;i++)
    {
        result[i]=a+b;
        b=a;
        a=result[i];    
    } 
    cout<<"计算结果为:"<<result[n-1]<<endl;
}

int main()                //斐波那契数列计算 
{
    cout<<"欢迎来到斐波那契小游戏"<<endl;
    feibo();    
    while(true)
    {
        cout<<"是否继续游戏?(yes/no)"<<endl;
        string n;
        cin>>n;
        if(n=="yes")
        {
            feibo();
            continue;
        }
        else if(n=="no")
        {
            return 0;
        }
        else
        {
            cout<<"error";
            return 0;
        }
    }    
}

采用递归编写如下:

#include <iostream>
using namespace std;

int digui(int k)
{
    int result;
    if(k==1)
    {
        result=1;
        return result;
    }
    else if(k==2)
    {
        result=1;
        return result;
    }
    else
    {
        result=digui(k-1)+digui(k-2);
        return result;
    }        
}

int main()                      //青蛙跳 
{
    int n,result;
    cout<<"欢迎来到斐波那契小游戏"<<endl;
    cout<<"请输入项数:"<<endl;
    cin>>n;
    result=digui(n);
    cout<<"该项为:"<<result<<endl;
    return 0;        
}

大概就是这样了,至于最开始的数选择,你可以自行更改,不知道符不符合你题目的要求