华剑缘
一切都在这个过程中获得,将那些目标埋藏于心中
posts - 19,comments - 20,trackbacks - 0


Lucy上了初中,她很喜欢数学,经常做数学奥林匹克的题目,可是今天她遇到了难题,于是就向她在南开大学上学的哥哥Feagle请教,聪明的哥哥不一会功夫就编程解决了妹妹的问题(^_^,南开大学的学生就是优秀)! 妹妹的题目是这样的:对给定的f(n) 当 n>=50025002 的时候,f(n)=n-5;当 n<50025002 的时候,f(n)=f(f(n+2005))。现在请您试试编程解决Lucy的难题! 


输入 

  
输入只有一个整数n,-2147483647<n<2147483647 。 
  输出
  
输出只有一个整数,f(n) 的值。
  样例输入 样例输出
50025002 50024997
  
  时间限制
  
对每个输入数据,程序应在5秒内给出结果。
 

 
  输入  
输入只有一个整数n,-2147483647<n<2147483647 。
  输出  
输出只有一个整数,f(n) 的值。
 
样例输入 样例输出
50025002 50024997
 
  时间限制  
对每个输入数据,程序应在5秒内给出结果。
posted on 2006-04-04 22:13 华剑缘 阅读(128) 评论(1)  编辑 收藏 引用

FeedBack:
# re: 程序设计试题
2006-04-05 16:49 | 编程之道
#include
#include
long count_1(long n);
long count_2(long n);
int main(int argc,char *argv[])
{
long n,result_1=0,result_2=0;
while(1)
{
printf("\nPlease Input A Number:");
scanf("%ld",&n);
result_1=count_1(n);
result_2=count_2(n);
printf("\ncount_1:%ld\ncount_2:%ld\n",result_1,result_2);
}
}

long count_1(long n)
{
long i=1;
while(i)
{
if(n>=50025002)
{
n-=5;
i--;
}
else
{
n+=2005;
i++;
}
}
return n;
}

long count_2(long n)
{
long m,tmp;
if(n>=50025002)
m=n-5;
else
{
tmp=count_2(n+2005);
m=count_2(tmp);
}
return m;
}
  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理