闲得无聊 贴贴看 抛砖引玉 int Ac = 0; int Bc = 8; int Av = 3; int Bv = 5; int Ap = 0; int Bp = 8; int i = 0; for (; ;) { Ap = Ac + Av; if (Ap <= 0 || Ap >= 8) { Av = -1 * Av; if (Ap <= 0) { Ap = -1 * Ap; } else { Ap = 8 - (Ap - 8); } } Ac = Ap; Bp = Bc - Bv; if (Bp <= 0 || Bp >= 8) { Bv = -1 * Bv; if (Bp <= 0) { Bp = -1 * Bp; } else { Bp = 8 - (Bp - 8); } } Bc = Bp; if (Ap == Bp) { MessageBox.Show(Ap.ToString()); i +=1; if (i > 10) break; }
(7t-5t)*10=100000 20t=100000 t=5000秒 s=5000*40=200000 M
int Ac = 0;
int Bc = 8;
int Av = 3;
int Bv = 5;
int Ap = 0;
int Bp = 8; int i = 0;
for (; ;)
{
Ap = Ac + Av; if (Ap <= 0 || Ap >= 8)
{
Av = -1 * Av;
if (Ap <= 0)
{
Ap = -1 * Ap;
}
else
{
Ap = 8 - (Ap - 8);
}
}
Ac = Ap; Bp = Bc - Bv; if (Bp <= 0 || Bp >= 8)
{
Bv = -1 * Bv;
if (Bp <= 0)
{
Bp = -1 * Bp;
}
else
{
Bp = 8 - (Bp - 8);
}
} Bc = Bp; if (Ap == Bp)
{
MessageBox.Show(Ap.ToString());
i +=1;
if (i > 10) break;
}
20t=100000
t=5000秒
s=5000*40=200000 M
假设A和B在第三处相遇用时为t秒,在第四处相遇用时为m秒。x为两地的距离。
有以下连式:
15t+25t = nx;
15m+25m = nx+x;
因为,A和B必定有一个在t到m秒之间走了100mk,坑定是A(15m/s),所以有以下连式:
15m-15t = 100000;
40m = 40t+x;100000/15=x/40;x= 800/3KM;思路在这了,就看牛人写代码了。
明天有时间我页试试!
用数学方法一次次计算出来最快,就是注意第三次相遇的时候两车一定是同向的
第一次在3/8x相遇
第二次在7/8x相遇
第三次在1/2x相遇
第四次在1/8x相遇
于是得出3/8x=100
.....
(15+25)t=2s
第三次相遇作为起点,他们走过的路程差
25t-15t=100Km
s=2000Km
X=800/3km有问题吗???
就是乙车跑完了三圈,此时甲乙两车肯定是相遇了三次, 而此时 乙车跑完3圈,根据速度比可以得到甲车正跑完1.8圈,
然后乙车回去,甲车继续向前,两车第四次相遇在 这0.2圈之类, 由此可得 第四次相遇时,甲车跑了0.2*3/8圈,乙车跑了0.2*5/8圈,
而第三次相遇已第四次相遇之间的距离正是甲车在三次相遇和四次相遇之间跑的距离,
则有 0.2*3/8圈 为 100KM
所以 距离应是 100*8/(0.2*3) = 4000/3 KM 这个 很简单的思路。。 怎么编程?连个判断都没得。。
CA车从A出发一直都没有到B,在这期间 CB车从B到A中间遇到了A一次,然后返回遇到第二次,再回遇到第三次,再回遇到第四次,当然不考虑油跑光的情况:)第二种情况
和第一次差不多,只是在A到B后然后回来才碰第二次,直到第四次完后才回到A第三种情况
和第一次差不多,A去的时候一次,回的是有一次,再去的时候一次,然后到碰完第四次才回第四中情况
和第一次差不多,A去的时候一次,回的是有一次,再去的时候一次,回的时候再一次。
不知道还有没有只想到这么多情况,还没算!
15X+25X = 3Z
15Y = 25Y-3Z;
15Y-15X = 100;
其他的三中情况懒得想了,呵呵。确实挺复杂。
如果是对于中学生,可以用下面的方法:假设总距离为S,第三次相遇的时间经过了t1,第四次相遇的时间经过t2.
要知道一个前提:除了第一次的相向而遇的时间是S/(25+15)=S/40外,其他任何两次相向而遇的时间差都是2S/(25+15)=S/20.第一次相遇毫无疑问是相向而遇.
第二次相向而遇时,时间经过了S/40 + S/20 = 3S/40.此时快车比慢车多走的路程为3S/40 * (25 - 15) = 3S/4<
S,所以第二次相遇也是相向而遇(距离差距小于S,便不存在同向而遇).
第三次相向而遇时,时间经过了S/40 + S/20 + S/20 = 5S/40 = S/8.此时快车比慢车多走的路程为S/8 * (25 - 15) = 10S/8 > S,所以第三次相向而遇之前必然有次同项而遇,即:第三相遇是同项而遇,第四次相遇是相向而遇.则 25t1 - 15t1 = S (第一次同项而遇,快车比慢车多走了S)
t2 = S/40 + S/20 + S/20 = S/8 (第四次相遇是第三次相向而遇)
15 * (t2 - t1) = 100 (第三次和第四次相遇的距离就是慢车走过的距离)解方程组 得S=800/3KM至于程序,完全没必要的.举个例子,让你计算1 + 2 + 3 + ... + 100,你真的会让程序一个一个加吗?如果是,你对程序的理解就是错的.我们分析后,再让电脑给我计算而已(分析很重要),对于我举的例子来说,电脑只要做 Total= (100 + 1) * 100 / 2,printe(Total.toString())就可以了.同样,楼主的例子,程序只需要printe(800/3KM)就可以了. 但是如果楼主要求是 第N次相遇和第N+1相遇时,相距s,则有必要写程序解决.
设距离X;
A走两地时间y=X/15;
B走两地时间z=X/25;
第3次:花的时间:F
第4次:花的时间:Q
F%y*15+Q%z*25+100=x
这是解方程的问题需要编程吗?
第一次相遇的时间是t1=X/40= (800/3)*1000/40= 20000/3秒 ,S1=15*t1=300/3KM,SS1=25*t1=500/3KM
第二次相遇的时间是t2=2X/40= 2*(800/3)*1000/40= 40000/3秒 ,S2=15*t2=600/3KM,SS2=25*t2=1000/3KM
第三次相遇的时间是t3=3X/40= 3*(800/3)*1000/40= 60000/3秒 ,S3=15*t3=900/3KM,SS3=25*t3=1500/3KM
第四次相遇的时间是t4=X/10= (800/3)*1000/10= 80000/3秒 ,S4=15*t4=1200/3KM,SS4=25*t4=2000/3KM
第一、二、三次相遇都是碰头,第四次相遇是乙车追上甲车
第三次相遇时地点距离B点S3-X=900/3-800/3=100/3KM
第四次相遇时地点距离B点S4-X=1200/3-800/3=400/3KM
所以两次相遇地点距离400/3-100/3=100KM,满足题目要求
距离800/3KM,AB的距离为X=800/3KM,甲车走过的距离S,乙车走过的距离SS
第一次相遇的时间是t1=X/40= (800/3)*1000/40= 20000/3秒 ,S1=15*t1=300/3KM,SS1=25*t1=500/3KM
第二次相遇的时间是t2=3X/40= 3*(800/3)*1000/40= 60000/3秒 ,S2=15*t2=900/3KM,SS2=25*t2=1500/3KM
第三次相遇的时间是t3=X/10= (800/3)*1000/10= 80000/3秒 ,S3=15*t3=1200/3KM,SS3=25*t3=2000/3KM
第四次相遇的时间是t4=5X/40= 5*(800/3)*1000/40= 100000/3秒 ,S4=15*t4=1500/3KM,SS4=25*t4=2500/3KM
第一、二、四次相遇都是碰头,第三次相遇是乙车追上甲车
第三次相遇时地点距离B点S3-X=1200/3-800/3=400/3KM
第四次相遇时地点距离B点S4-X=1500/3-800/3=700/3KM
所以两次相遇地点距离700/3-400/3=100KM,满足题目要求
甲车、乙车在第3次相遇和第4次相遇的路程差就是甲车单位时间行驶的路程,就是15*s=100km走直线确实是这样,问题是如果拐弯了 还是这样么?
从程序的角度来理解的话,这道题还是有难度的,大家可以试试写以下的算法:
已知两车的速度为V1和V2,路程为1个单位,求第n次相遇的时间:
double GetTime(double v1,double v2,int n)
{
}就楼主这道题而言(路程设为1个单位):
t1=1/40
t2=3/40
t3=1/10(第3次是同向相遇)
t4=5/40
t5=7/40
t6=9/40
t7=11/40
t8=3/10(第8次也是同向相遇)
……(存在着很明显的规律)
以甲车来做分析,第3次相遇,甲车走了15*(1/10)=3/2单位距离
到4次相遇时:甲车走了15*(5/40)=15/8单位距离
很明显:两个点之间的差距就是15/8-3/2=3/8单位距离=100KM