| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3775 人关注过本帖
标题:[讨论]]第十一期编程题目(题目很简单,大家一起来做了)
取消只看楼主 加入收藏
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
 问题点数:0 回复次数:15 
[讨论]]第十一期编程题目(题目很简单,大家一起来做了)
第一题:

青蛙的约会
Time Limit:1000MS Memory Limit:10000K
Total Submit:16233 Accepted:1839

Description
两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮助这两只乐观的青蛙,你被要求写一个程序来判断这两只青蛙是否能够碰面,会在什么时候碰面。
我们把这两只青蛙分别叫做青蛙A和青蛙B,并且规定纬度线上东经0度处为原点,由东往西为正方向,单位长度1米,这样我们就得到了一条首尾相接的数轴。设青蛙A的出发点坐标是x,青蛙B的出发点坐标是y。青蛙A一次能跳m米,青蛙B一次能跳n米,两只青蛙跳一次所花费的时间相同。纬度线总长L米。现在要你求出它们跳了几次以后才会碰面。

Input
输入只包括一行5个整数x,y,m,n,L,其中x≠y < 2000000000,0 < m、n < 2000000000,0 < L < 2100000000。

Output
输出碰面所需要的跳跃次数,如果永远不可能碰面则输出一行"Impossible"

Sample Input

1 2 3 4 5

Sample Output

4





搜索更多相关主题的帖子: FONT 青蛙 题目 Limit color 
2007-04-12 21:09
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 

Exponentiation
Time Limit:500MS Memory Limit:10000K
Total Submit:19808 Accepted:4475

Description
Problems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many computer systems.

This problem requires that you write a program to compute the exact value of Rn where R is a real number ( 0.0 < R < 99.999 ) and n is an integer such that 0 < n <= 25.

Input
The input will consist of a set of pairs of values for R and n. The R value will occupy columns 1 through 6, and the n value will be in columns 8 and 9.

Output
The output will consist of one line for each line of input giving the exact value of R^n. Leading zeros should be suppressed in the output. Insignificant trailing zeros must not be printed. Don't print the decimal point if the result is an integer.

Sample Input

95.123 12
0.4321 20
5.1234 15
6.7592  9
98.999 10
1.0100 12

Sample Output

548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992025569.928573701266488041146654993318703707511666295476720493953024
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001
1.126825030131969720661201
简单翻译一下:
其实是一个高精度计算.计算R的N次方,不能忽略任何有效数字

2007-04-12 21:20
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
以下是引用I喜欢c在2007-4-12 22:00:07的发言:

晕!
你也太急了不是....

我也不想.我一怕我自己忘了.二怕这次又没有几个做,所以特意找两个简单的乘快要周末了.看能不能混点人气.
哎.
现在都不知道哪些题目符合大家的胃口


2007-04-12 22:56
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
以下是引用moonwalker在2007-4-13 0:14:39的发言:

这次题目果然简单,第一题几分钟就可以搞定,明天回来再做第二题
#include "stdio.h"
main()
{
long x,y,m,n,L;
long a,b;
int i=0,flag=0;
int Judge(long x,long y,long m,long n,long L);
do{
printf("Input x,y,m,n,L:\n");
scanf("%ld,%ld,%ld,%ld,%ld",&x,&y,&m,&n,&L);
}while(Judge(x,y,m,n,L)==0);
a=x;
b=y;
while(flag==0)
{
i++;
a=(a+m)%L;
b=(b+n)%L;
if(a==b)
flag=1;
if(a==x && b==y)
flag=2;
}
if(flag==1)
printf("The times is %d\n",i);
else if(flag==2)
printf("Impossible!\n");
}
int Judge(long x,long y,long m,long n,long L)/*首先没有必要检查数据是否合法,测试数据都是合法的*/
{
int r=1;
if(x==y)
{
printf("Two frogs are not at a place!(x!=y) Another input please!\n");
r=0;
}
else if(x>=2000000000 || y>=2000000000 || m>=2000000000 || n>=2000000000)
{
printf("Invalid input! Another input please!\n");
r=0;
}
else if(x<=0 || y<=0 || m<=0 || n<=0)
{
printf("Invalid input! Another input please!\n");
r=0;
}
else if(L<=0 || L>=2100000000)
{
printf("Invalid input! Another input please!\n");
r=0;
}
else if(x>L || y>L)
{
printf("Invalid input! Another input please!\n");
r=0;
}
return r;
}

其次在测试数据分别是:15 20 30 14 30的时候没有出现答案
正确答案应该是 不可能

再改一改

2007-04-13 12:08
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
以下是引用yu_hua在2007-4-13 8:40:54的发言:
#include <stdio.h>
long gcd(long u,long v)
{
return v?gcd(v,u%v):u;/*大公约*/
}
long lcm(long u,long v)
{
return u/gcd(u,v)*v;/*小公倍*/
}
main()
{
long x,y,m,n,L,step=0;
printf("Input x,y,m,n,L:\n");
scanf("%ld,%ld,%ld,%ld,%ld",&x,&y,&m,&n,&L);
/*如果m,n的小公倍是L的约数或L的倍数就意味着无解*/
if(L%lcm(m,n)==0||lcm(m,n)%L==0)
printf("Impossible!\n");
else
while(++step)
{
x=(x+m)%L;
y=(y+n)%L;
if(x==y)break;
}
printf("%ld\n",step);
}
你的程序在判断不定方程是否有解的时候在理论上没有什么错误.但是下面的数据你出错了
1 7 16 1 9,你的结果是不可能,正确答案应该是1;
你找找是哪个地方出错了.
还有就是在解方程的时候你的算法效率不是很高如果step的结果很大的话你要做的循环很多.估计1s不够
等我找到这样的数据在让你测试 一下


2007-04-13 12:33
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
以下是引用I喜欢c在2007-4-12 23:15:43的发言:

找一些对底沉硬件操作的....

我自己都不会.


2007-04-13 13:08
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
以下是引用moonwalker在2007-4-13 20:09:11的发言:

看来我是把这题想简单了,难点还是在如何判断不能见面的情况,还得好好想想!

9楼的哥们:/*如果m,n的小公倍是L的约数或L的倍数就意味着无解*/ 能解释一下么?


如果m=n,也是无解,可是这时m或n不一定是L的约数啊!
上次称球的时候,你用信息论论证能否称出来。现在还佩服呢。你应该是学数学的吧。

我提示一下.对于不定方程m*x+n*y=l(x,y是未知的,其他是以知)如果gcd(m.n)不能整除l,就无解.离散数学上的

当然这个题目还有其他的判断方法.


第二个题目怎么没有人做啊?
是不是太简单了?

[此贴子已经被作者于2007-4-13 21:14:19编辑过]


2007-04-13 21:06
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
以下是引用jiangliangju在2007-4-13 23:37:36的发言:
我发现我的答案和你提供的答案有点出入,是不是我的机子有问题

当然会有了.题目要求的精度比你的高.如果R=.12345,N=25,那么精度要到小数点125位.
你采用的浮点数计算是达不到.其次在计算中的浮点树的储存也有有误差的比如说float i=1;
在计算机里它可能是1.000000000007,也有可能是0.99999999995.所以计算误差就更大了


2007-04-14 09:00
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
以下是引用yu_hua在2007-4-14 9:23:52的发言:
9楼的程序已经改过,欢迎大家进行检测,看看还有错误没有?
不失一般性,以下令m>n。我认为如果(x-y)不等于t或t的倍数,
则"impossible",其中t表示(m-n)与L的最大公约数。

答案基本上是对 了.就是速度没有达到1s;
你自己测试一下下面的数据:
1000000000(9个0) 1888888888(9个8) 235 789 1999999999(9个9)
你的输出要等好几秒


2007-04-14 09:58
crackerwang
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:833
专家分:0
注 册:2007-2-14
收藏
得分:0 
回楼上,
答案应该对了,不过要是测试,要是用28楼的数据测试可能也要比较长的时间

怎么都不做第二个?
要不把第二个再改一下

2007-04-14 18:32
快速回复:[讨论]]第十一期编程题目(题目很简单,大家一起来做了)
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.013484 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved