m0_66021958 2022-03-05 21:08 采纳率: 66.7%
浏览 29
已结题

不会做,谁能帮个忙嘛

题目描述
斐波那契数列以如下递推的形式定义:F(0)=1,F(1)=1,F(n)=F(n−1)+F(n−2)(n≥2,n∈N∗)。

如果一个数出现在斐波那契数列之中,那么我们就称这个数为斐波那契数。

现在,给定一个整数 n,请你构造一个长度为 n 的字符串 s1s2…sn。

对于字符串中的第 i 个字符 si:

如果 i 是斐波那契数,则 si 为大写字母 O。 如果 i 不是斐波那契数,则 si 为小写字母 o。 输出构造好的字符串。

注意,字符下标从 1 到 n。

img

  • 写回答

1条回答 默认 最新

  • 开发者小峰 2022-03-06 00:06
    关注
    
    #include <stdio.h>
    #include <malloc.h>
    int main(){
        int n,i,dp[2]={1,1};
        char *s;
        scanf("%d",&n);
        s=(char *)malloc(sizeof(char)*(n+1));
        for(i=0;i<n;i++){
            s[i]='o';
        }
        s[n]='\0';
        for(i=1;dp[i]<=n;i=!i){
            s[dp[i]-1]='O';//dp[i]为斐波那契数 
            dp[i]=dp[0]+dp[1];
        }
        printf("%s",s);
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 3月14日
  • 已采纳回答 3月6日
  • 创建了问题 3月5日

悬赏问题

  • ¥15 C++为什么这个代码没报错运行不出来啊
  • ¥15 第一行输入n,第二行输入a b c输出的字符向后平移n个位置,当移动到z时,重新返回a开始
  • ¥15 为什么跑这个代码,文件显示不在呀
  • ¥15 一道ban了很多东西的pyjail题
  • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
  • ¥15 C++识别堆叠物体异常
  • ¥15 微软硬件驱动认证账号申请
  • ¥15 GPT写作提示指令词
  • ¥20 根据动态演化博弈支付矩阵完成复制动态方程求解和演化相图分析等
  • ¥20 关于DAC输出1.000V对分辨率和精度的要求