杭电1008简单题
简单题,大意是坐电梯,从0层楼开始坐。 上升 一层楼要用6秒,下降一层楼要用4秒,在某层楼停住要停5秒。
http://acm.hdu.edu.cn/showproblem.php?pid=1008这是网址
Sample Input
1 2
3 2 3 1
0
Sample Output
17
41
我写了程序,也AC了,只是里面有一点不清楚。
这是我原来的代码
- C/C++ code
#include<iostream>using namespace std;int main(int argc, char* argv[]){ int n,m,a,b,i,k,sum,p; while(cin>>m&&m) { sum=0; a=0; for(i=0;i<m;i++) { cin>>b; k=b-a; if(k)//这里错了 { sum=sum+6*(b-a);a=b; } if(!k) { sum=sum+4*(a-b);a=b; } } sum=sum+5*m; cout<<sum<<endl; } return 0;}- C/C++ code
#include<iostream>using namespace std;int main(int argc, char* argv[]){ int n,m,a,b,i,k,sum,p; while(cin>>m&&m) { sum=0; a=0; for(i=0;i<m;i++) { cin>>b; k=b-a; if(k>0)//ac的代码 { sum=sum+6*(b-a);a=b; } if(k<0) { sum=sum+4*(a-b);a=b; } } sum=sum+5*m; cout<<sum<<endl; } return 0;}为什么会是这样。
[解决办法]
也许只是因为编译器的原因.
[解决办法]
maybe编译器的原因~
这只是提倡一种好的习惯~写程序要尽量清晰~
[解决办法]
当K是负数的时候,K作为布尔值也为真啊,LZ是不是这里搞错了。
PS:具体的题目没看
[解决办法]
k>0 表示电梯向上
k<0 表示向下
很容易理解吧。。
if(k) 你这句只要k不为0都是真的
逻辑错误,lz在看看吧
[解决办法]
[解决办法]
应该不是编译器的原因啊,k<0,布尔型仍然为真!