出售金鱼

出售金鱼:

小明将养的一缸金鱼分5次出售:第1次卖出全部的一半加1/2条;第2次卖出余下的三分之一加1/2条;第3次卖出余下的四分之一加1/4条;第4次卖出余下的五分之一加1/5条;最后卖出余下的11条。试编程求出原来鱼缸中共有多少条鱼。

解题思路:

根据题意可得,第i次卖出余下的1/(i+1)加1/(i+1)条。假设第i次卖鱼前金鱼总数为n,则第i次卖鱼后金鱼总数为n-(n+1)/(i+1),金鱼只能整条出售,所以n+1必须整除i+1,利用for循环考虑卖五次的情况和试验不同的n,满足条件的则输出。

代码:

#include<iostream>

using namespace std;

int main()

{

    int i,j,n;

    for(j=23;;j+=2)

    {

        n=j;

        for(i=1;i<5&&n>=11;i++)

        {

            if((n+1)%(i+1)==0)

            {

                n=n-(n+1)/(i+1);

            }

            else

            {

                n=0;

                break;

            }

        }

        if(n==11&&i==5)

        {

            cout<<"原来鱼缸中共有"<<j<<"条金鱼。"<<endl;

            break;

        }

    }

return 0;

}

本题体会:实际问题根据实际情况讨论

 

posted @ 2023-04-20 13:59  不如喝点  阅读(109)  评论(0编辑  收藏  举报