青岛地铁3号线是青岛市首条地铁线路,也是中国山东省第一条建成运营的地铁线路,共有22站,票价最高5元,现需要您编写一套票价计算系统,用户通过控制台输入票价表和乘车区间站名后,程序自动计算票价(暂不考虑中途下车或换乘的情况)。
输入样例:
Qingdao Wusiguangchang Qingdaobei ###
2 3 5
3 2 5
5 5 2
Qingdao Wusiguangchang
输出样例:
3
输入样例解释:
第1行:地铁网络图精简版,即读到若干个地铁站名字。站名拼音表示,中间不含空格或其他字符。当读到名字为“###”时,表示站名输入结束,###并不是一个站的名字。假设共输入n个站名。
第2至n+1行,输入n×n的整数矩阵表示不同站之间的票价。例如2 3 5分别表示上述站名中第一个站依次到另一个站之间的票价。同站进出票价为2元。
第n+2行,读入需要计算票价的两个站点的名称。(注意:若输入不存在的站点,请提示“StationNotFound”)
输出样例解释:
票价
完整代码:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
ArrayList<String> list=new ArrayList<>();
int number=0;
while(true){
String s = scanner.next();
if(s.equals("###"))
break;
list.add(s);
number++;
}
int[][] money=new int[number][number];
for (int i = 0; i < number; i++) {
for (int j = 0; j < number; j++) {
money[i][j]= scanner.nextInt();
}
}
//m1为出发点,m2为目的地,number1为出发点对应的下标,number2为目的地对应的下标
String m1= scanner.next();
String m2= scanner.next();
int number1=-1;
int number2=-1;
boolean found1=false;
boolean found2=false;
for (int i = 0; i < number; i++) {
if(m1.equals(list.get(i))){
number1=i;
found1=true;
}
if(m2.equals(list.get(i)))
{
number2=i;
found2=true;
}
}
if (found1&&found2) {
System.out.println(money[number1][number2]);
}else
System.out.println("StationNotFound");
}
}
以上代码仅供参考,如果有本校同学看到这篇博客,切记不要cv,记得要理解自己动手操作!!!