皮卡丘574 2021-11-04 23:45 采纳率: 100%
浏览 67
已结题

初学者,望指点,刚学编程。

我写了下,发现没什么思路,有点乱,试了几小时总不对。还剩三道题了。

img

  • 写回答

2条回答 默认 最新

  • 冷0_O 2021-11-05 00:53
    关注

    1、第一道题找规律,逆推注意循环次数即可。代码就不给出来了。
    2、从题目来看,既然一眼就能看出羽毛球较少,则在循环计算时,羽毛球要从0开始且放置外层循环中。
    代码如下:

    int Badminton_tennis()
    {
        //记录羽毛球(badminton_number)和乒乓球的数量(tennis_number)
        for(int badminton_number = 0; (80.20-(badminton_number*2.90)) > 0; badminton_number++){
            for(int tennis_number = 0; ((80.20-(badminton_number*2.90 + tennis_number*1.70)) > 0); tennis_number++){
                /*
                相等则退出,注意:if中是两个double类型在比较是否相等,切忌写成(80.20 == (badminton_number*2.90 + tennis_number*1.70)),
                正确的写法是两个double相减去和0.00001比较才行。
                */
                if( (80.20-(badminton_number*2.90 + tennis_number*1.70)) < 0.00001 ) 
                    return badminton_number; //返回羽毛球的数量
            }
        }
        return -1;
    }
    
    int main()
    {
        cout << Badminton_tennis();
        return 0;
    }
    

    3、第三题我给出两种方法,题干中提到了需要算到19999995项以后(此时斐波那契数会很大,int已经无法保存,改用long long int)。
    代码如下:

    long long int Fibonacci_sequence(int n) //普通求法
    {
        if((1==n) || (2==n))
            return 1;
        long long int a = 1,b = 1,temp = 0;
        n -= 2;
        while(n--){
            temp = a + b;
            a = b;
            b = temp;
        }
        return (b%10);
    }
    
    long long int Fibonacci_recursion(int n) //递归
    {
        if( n == 1 || n == 2) // 递归结束的条件
            return 1;
        else
            return (Fibonacci_recursion(n-1)+Fibonacci_recursion(n-2))%10; // 如果是求其它项。
    }
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 11月13日
  • 已采纳回答 11月5日
  • 创建了问题 11月4日

悬赏问题

  • ¥15 解决websocket跟c#客户端通信
  • ¥30 Python调用dll文件输出Nan重置dll状态
  • ¥15 浮动div的高度控制问题。
  • ¥66 换电脑后应用程序报错
  • ¥50 array数据同步问题
  • ¥15 pic16F877a单片机的外部触发中断程序仿真失效
  • ¥15 Matlab插值拟合差分微分规划图论
  • ¥15 keil5 target not created
  • ¥15 C/C++数据与算法请教
  • ¥15 怎么找志同道合的伙伴