电梯的用电量
一个电梯,最低可以到达地下3层,最高位地上12层。注意:中间没有0层。
电梯向上运行时,每上升1层需要消耗1单位的电量,向下时每层消耗0.3单位电量。
输入一段时间内电梯停过的楼层顺序(用逗号连接),输出一共消耗了多少单位电量。
例如输入:1,11,1
输出:13.0
输入:1,5,8,1,-3,12,1
输出:27.3
【Scratch代码】
【Python代码】
1. n = input('请输入电梯运行轨迹:') 2. n_list = n.split(',') 3. list1 = [] 4. for i in n_list: 5. list1.append(eval(i)) 6. 7. result = 0 8. for i in range(len(list1)-1): 9. if list1[i] < list1[i+1]:#上升 10. if list1[i]<0 and list1[i+1]>0:#跨越了0层 11. result += (list1[i+1]-list1[i]-1) #减掉一层 12. else: 13. result += (list1[i+1]-list1[i]) 14. else:#下降 15. if list1[i]>0 and list1[i+1]<0:#跨越了0层 16. result += (list1[i]-list1[i+1]-1) * 0.3 #减掉一层 17. else: 18. result += (list1[i]-list1[i+1]) * 0.3 19. print(result)
【C++代码】
1. #include<stdio.h> 2. int main() 3. { 4. int s[50]={0}; 5. int n,i; 6. double m=0.0; 7. scanf("%d",&n); 8. for(i=1;i<=n;i++) scanf("%d",&s[i]); 9. for(i=1;i<n;i++){ 10. if(s[i]<s[i+1]){ 11. if((s[i]<0)&&(s[i+1])>0) m+=s[i+1]-s[i]-1; 12. else m+=s[i+1]-s[i]; 13. } 14. else{ 15. if((s[i]>0)&&(s[i+1]<0)) m+=(s[i]-s[i+1]-1)*0.3; 16. else m+=(s[i]-s[i+1])*0.3; 17. } 18. } 19. printf("%.2lf\n",m); 20. return 0; 21. }