牛客小白月赛7-A送分题

【单纯很想挂一下这个题~这题目描述老厉害了……

链接:https://www.nowcoder.com/acm/contest/190/A
来源:牛客网

题目描述

做水题就是在浪费时间,但是一场比赛要是没有送分的签到题,大家的比赛体验就会很差。为了优化你的比赛体验又不浪费你的读题时间,我并不打算给你很复杂的故事背景,你只需要复制下面的代码并选择正确的语言提交即可通过此题。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include<iostream>
using namespace std;
long long f(long long n)
{
if (n < 20180001) return n + 2017;
return f(f(n - 2018));
}
int main()
{
long long n;
cin >> n;
cout << f(n) << endl;
return 0;
}

输入描述

输入一个整数n(1 ≤ n ≤ 10^18)

输出描述

输出一个整数表示答案。

样例输入

1
20182017

样例输出

1
20182017

题目坑点:
复制并选择正确的语言是不能通过此题的哈哈哈哈哈哈哈哈哈~
要把嵌套的递归剥出来红红火火恍恍惚惚~
但是!什么都不改直接翻译成Pascal就可以……通过……了,而且时间和内存都是最小(吃鲸…),反正C++不行~
Pascal版的:

1
2
3
4
5
6
7
8
9
10
11
var
n:int64;
function f(x:int64):int64;
begin
if n<20180001 then exit(n+2017);
exit(f(f(n-2018)));
end;
begin
readln(n);
if n<20180001 then writeln(n+2017) else writeln(20182017);
end.

C++版的:

1
2
3
4
5
6
7
8
9
10
11
#include<bits/stdc++.h>
using namespace std;
int main()
{
long long n;cin>>n;
if(n<20180001) cout<<n+2017<<endl;
else
{
cout<<20182017<<endl;
}
}