#include <limits.h><br /><br />int main(int argc, char* argv[])<br />{<br /> int MAX_FLOOR = 30; //最多楼层<br /> int min_by_tk = 1; //最少抱怨停靠楼层<br /> int min_by = LONG_MAX; //最少抱怨<br /> for(int dt_tk = 1; dt_tk <= MAX_FLOOR; dt_tk++) //停靠楼层<br /> {<br /> int by = 0; //抱怨<br /><br /> for(int upper = 1; upper < dt_tk; upper++) //向上爬的<br /> {<br /> by += (dt_tk - upper) * 3;<br /> }<br /><br /> for(int down = MAX_FLOOR; down > dt_tk; down--) //向下爬的<br /> {<br /> by += (down - dt_tk) * 1;<br /> }<br /><br /> if(min_by > by)//更少抱怨<br /> {<br /> min_by_tk = dt_tk;<br /> min_by = by;<br /> }<br /><br /> printf("dt_tk = %02d by = %d
",dt_tk,by);<br /> }<br /><br /> printf("
最少抱怨停靠楼层 %d ,抱怨 %d
",min_by_tk,min_by);<br /><br /> return 0;<br />}<br /><br />执行结果<br />dt_tk = 01 by = 435<br />dt_tk = 02 by = 409<br />dt_tk = 03 by = 387<br />dt_tk = 04 by = 369<br />dt_tk = 05 by = 355<br />dt_tk = 06 by = 345<br />dt_tk = 07 by = 339<br />dt_tk = 08 by = 337<br />dt_tk = 09 by = 339<br />dt_tk = 10 by = 345<br />dt_tk = 11 by = 355<br />dt_tk = 12 by = 369<br />dt_tk = 13 by = 387<br />dt_tk = 14 by = 409<br />dt_tk = 15 by = 435<br />dt_tk = 16 by = 465<br />dt_tk = 17 by = 499<br />dt_tk = 18 by = 537<br />dt_tk = 19 by = 579<br />dt_tk = 20 by = 625<br />dt_tk = 21 by = 675<br />dt_tk = 22 by = 729<br />dt_tk = 23 by = 787<br />dt_tk = 24 by = 849<br />dt_tk = 25 by = 915<br />dt_tk = 26 by = 985<br />dt_tk = 27 by = 1059<br />dt_tk = 28 by = 1137<br />dt_tk = 29 by = 1219<br />dt_tk = 30 by = 1305<br /><br />最少抱怨停靠楼层 8 ,抱怨 337<br /><br />
|