出售金鱼
出售金鱼:
小明将养的一缸金鱼分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;
}
本题体会:实际问题根据实际情况讨论