模拟交通警察的雷达测速仪。输入汽车速度,如果速度超出60 mph,则显示“Speeding”,否则显示“OK”。
输入格式:
输入在一行中给出1个不超过500的非负整数,即雷达测到的车速。
输出格式:
在一行中输出测速仪显示结果,格式为:Speed: V - S,其中V是车速,S或者是Speeding、或者是OK。
输入样例1:
40
输出样例1:
Speed: 40 - OK
输入样例2:
75
输出样例2:
Speed: 75 - Speeding
作者 杨起帆
单位:浙大城市学院
代码长度限制:16 KB
时间限制:400 ms
内存限制:64 MB
JAVA:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int speed = in.nextInt();
map(speed);
}
public static void map(int speed)
{
if(speed>60)
{
System.out.printf("Speed: %d - Speeding",speed);
System.exit(0);
}
System.out.printf("Speed: %d - OK",speed);
System.exit(0);
}
}
#include<stdio.h>
int main(void)
{
int v;
scanf("%d",&v);
while(v>60){
printf("Speed: %d - Speeding",v);
return 0;
}
printf("Speed: %d - OK",v);
}
在上述运行结果中可以看到无论用while判断还是用if做判断前面三个测试用例运行速度相同但if占用的内存明显小于用while时占用的内存。
疑惑之处在于过同一个判断只是数值不一样测试点运行时间居然相差两倍多。不知道是不是因为系统偏差还是某些机制的原因。希望各位大佬指点。