[ Source :
NKPC ]

Time Limit: 1500 ms Memory Limit: 10000 kB
Total Submit : 1807 (301 users) Accepted Submit : 288 (173 users) Page View : 5112
Lucy上了初中,她很喜欢数学,经常做数学奥林匹克的题目,可是今天她遇到了难题,于是就向她在南开大学上学的哥哥Feagle请教,聪明的哥哥不一会功夫就编程解决了妹妹的问题(^_^,南开大学的学生就是优秀)! 妹妹的题目是这样的:对给定的f(n) 当 n>=50025002 的时候,f(n)=n-5;当 n<50025002 的时候,f(n)=f(f(n+2005))。现在请您试试编程解决Lucy的难题!
Input
输入有多个测试数据,每行一个 -2147483647<n<2147483647Output
每行输出一个对应的f(n)Sample Input
50025002 50025000
Sample Output
50024997 50026995
Hint
递归嵌套层数过多会导致Runtime Error 或 Memory Limit Exceeded
Source
NKPC
#include
<
stdio.h
>
int main(){ long long n; while (scanf( " %lld " , & n) != - 1 ){ if (n < 50025002 ) n += (( 50025002 - n) / 2000 + 1 ) * 2000 ; printf( " %lld " ,n - 5 );} return 0 ;}
int main(){ long long n; while (scanf( " %lld " , & n) != - 1 ){ if (n < 50025002 ) n += (( 50025002 - n) / 2000 + 1 ) * 2000 ; printf( " %lld " ,n - 5 );} return 0 ;}