5.8 2.5

发布时间 2023-05-08 23:00:33作者: 席

一、问题描述

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

二、分析金鱼是分5 次出售,每次卖出的方式都相同,因此可以用表达式将每次卖鱼后剩下的条数计算出来。

第1次卖出全部的一半加 1/2条;
第2次卖出余下的三分之一加 1/3条;
第3次卖出余下的四分之一加 1/4 条:
第4次卖出余下的五分之一加1/5条

三、代码

 

#include<iostream>
using namespace std;

int main()
{
int sum = 0; //总金鱼数
int i = 0;
int flag = 0;
double tmp = 0;

for(sum = 11; sum <= 1000; sum++) //穷举范围11~1000
{
tmp = (double)sum;
for(i = 1; i <= 4; i++)
{
tmp = tmp - (tmp + 1) / (i + 1);
}
if(tmp < 11.000001 && tmp > 10.999999) //最后剩下11条(浮点数判断需要考虑精度问题)
{
flag = 1; //找到匹配的结果
break;
}
}
if(flag)
cout<<"金鱼总数为"<< sum;
else
cout<<"error";
return 0;
}

四、结果