程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 2059龜兔賽跑

2059龜兔賽跑

編輯:C++入門知識

#include<stdio.h>
int main() {
 __int64 i,n,c,t,l,vr,vt1,vt2,p[101];
 double f[101];
 while(scanf("%I64d%I64d%I64d%I64d%I64d%I64d%I64d",&l,&n,&c,&t,&vr,&vt1,&vt2)!=EOF) {
  for(i=1;i<=n;i++)
   scanf("%I64d",&p[i]);
 p[0]=0;//假設出發點也為一個回收站
  p[n+1]=l;//終點
  f[0]=0;//賦初值
  for(i=1;i<=n+1;i++) {
   f[i]=1.0*l/vt2;//不充電話費的時間置為最大值
   for(int j=0;j<i;j++) {
   double temp;
    if(p[i]-p[j]>=c)
     temp=1.0*(p[i]-p[j]-c)/vt2+1.0*c/vt1;//充電量是一個定值只要充電不管以前有多少電,沖完電後都是一個定值;
    else
     temp=1.0*(p[i]-p[j])/vt1;
    if(j)
     temp+=t;//在j這個點充電花費時間如果是零那麼就不需要花費時間
    temp+=f[j];//加上到j這個點的最小花費時間
    if(f[i]>temp)
     f[i]=temp;//比較
   }
  }
  if(f[n+1]<1.0*l/vr)//比較和兔子花費時間大小
   printf("What a pity rabbit!\n");
  else
   printf("Good job,rabbit!\n");
 }
 return 0;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved