蓝桥杯练习题B

来源:http://oj.mofriend.net/problem.php?cid=1203&pid=1
题目描述
某天晚上,若干个渔夫合伙捕鱼,捕到一定数量后便停止捕鱼,各自到岸边休息。第二天早晨,渔夫A第一个醒来,他将鱼分作五份,把多余的一条扔回河中,拿走自己的那份回家去了。渔夫B第二个醒来,也将鱼分作五份,扔掉多余的一条,拿走自己的一份。渔夫C第三个醒来,也将鱼分作五份,扔掉多余的一条,拿走自己的一份……最后一个渔夫醒来,也将鱼分作五份,扔掉多余的一条,拿走自己的一份。问这些渔夫至少捕到多少条鱼?
输入

输入渔夫的人数( < 20 )
输出
输出渔夫合伙捕捞到的鱼的数量。(结尾加一个换行符)

1
2
3
4
样例输入
5
样例输出
3906

思路:
题目的意思比较坑,比较难理解,我也不知道该怎么理解,代码是能过..但是感觉与题意不符,代码的意思 是 先得到人数 N +1 然后再循环 n-1次 每次把之前的结果5+1 我奇怪的为什么这里要是N 后面确是5+1 要么都是 5+2 要么 就是 n+1…奇怪的题目.

代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
void handle(long long int &n1) {
n1 = n1 * 5 + 1;
}
int main()
{
long long int n;
long long int n1 ;
while(cin >> n)
{
n1 = n+1;
if (n <= 0)
n1 = 0;
else
for (long long int i = 0; i < n-1; i++)
{
handle(n1);
}
cout << n1 << endl;
}
return 0;
}