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