经典算法:运动会问题

Posted seen_in_hw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了经典算法:运动会问题相关的知识,希望对你有一定的参考价值。

运动会开了N天,一共发出金牌M枚。第一天发金牌1枚加剩下的七分之一枚,第二天发金牌2枚加剩下的七分之一枚,第3天发金牌3枚加剩下的七分之一枚,以后每天都照此办理。到了第N天刚好还有金牌N枚,到此金牌全部发完。编程求N和M。

关键要分析出一个后一天和前一天的金牌数的关系,关系如下:
gold[i] = gold[i+1]*7/6+i; i+1指后一天,i指当天

附上代码:

#include <iostream>
using namespace std;
void main()
    int i=0,count =0;
    int gold[100];
    do
        count = count +6;
        gold[count] = count;
        for(i = count-1;i>=1;i--)    //说明i=0时都已经做完循环一次了
            if(gold[i+1]%6!=0) break;
            else
            gold[i] = gold[i+1]*7/6+i;
            
        
    while(i>=1);
    cout<<"运动会开了"<<count<<"天"<<endl;
    cout<<"总共发了"<<gold[1]<<"枚金牌"<<endl;

以上是关于经典算法:运动会问题的主要内容,如果未能解决你的问题,请参考以下文章

目标跟踪检测算法(一)——传统方法

—— 这些经典笔试题,你确定都做过吗?

Top K算法分析

Codecs系列x265编码器:子像素运动搜索

Codecs系列x265编码器:子像素运动搜索

停止浪费:彪马为旗下经典运动鞋的可生物降解版本RE:SUEDE进行前导测试