level 1
ProblemShirely初学Pascal,在写作业的时候遇到一个棘手的问题:我们设定g(n)在n>=520000000的时候g(n)=n-3;在n<520000000的时候g(n)=g(g(n+5203))。题目给了很多n的值,小的有-maxlongint大的有maxlongint。无奈之下,Shirely找到了Navi。谁知Navi仅花了3分钟就求出了题目要求的所有的解。现在请你编一个程序求出g(n)。Input本题有多组测试数据。每组一行,为n。n的范围是-maxlongint<=n<=maxlongint。 Output每组数据打印一行g(n)的值。 Sample Input520000000Sample Output519999997好棘手啊! 内存好象有限制 在512K以下
2005年06月07日 01点06分
1
level 1
原本是一个简单的递归问题,但是加上内存限制及复杂了虽然吧主没置顶,我先顶上去,回头想好了再贴代码上来初步想法:分三种情况1、g(n) := n - 32 g(n) := (n + 5203) -33 g(n) := (((n + 5203) + 5203) + 5203 ......) -3根据输入的 n 判断
2005年07月04日 09点07分
2
level 0
这题我也看到过,没做出来啊~好像有人只用几十k就算出来了
2005年08月05日 00点08分
5
level 1
program TJU_1118; var n:longint; begin while not seekeof do begin readln(n); if n>=520000000 then writeln(n-3) else begin if n<-5200 then begin inc(n,2147480400);inc(n,5200) end; if n<0 then inc(n,5200); writeln((n mod 5200)+519999997) end end end.44k 0ms AC的
2005年08月11日 08点08分
7