酝酿多日的《编程爱好者》第一届编程大赛完美落幕
群主和管理员在此感谢广大群员的踊跃参加,以后相关类型比赛每月举行一次,欢迎大家踊跃参加。
本次比赛,管理员离天王(1132148229)提交了数份答案,本着鼓励更多参赛者的原则,只保留他最靠前的一个名次,其余名次取消,被后面的参赛者代替,感谢离天王(1132148229)的牺牲。
下面公布参赛者获奖名单:
一等奖1名:离天王(1132148229)
二等奖2名:唐珮岚(781797426) 海绵宝宝派大星(535272033)
三等奖3名:简简单单(840911234) 陈勃士(1443735959) 人来疯(1030118845)
第一届编程大赛有喜有忧,令群主欣慰的是参赛者基本上完成了题目的要求,令群主忧虑的是Java参赛者提交的答案虽然正确,但是技术含量相当低,健壮性为0,希望大家继续深入学习,提高开发水平。二等奖中海绵宝宝派大星(535272033)的答案有较强的扩展性,其他Java参赛者可以参考一下,下面是他的代码(群主进行了微调):
import java.util.Scanner;
public class bianchengbisai {
private static Scanner in;
public static void main(String[] args) {
in = new Scanner(System.in);
int d,n;
int h,w;
d=in.nextInt();
n=in.nextInt();
h=(d-50)/50;
w=(h+5)+(n-1)*(2+h);
System.out.println(w);
}
}
下面是Java试题的标准答案:
public class TwoArray_10 {
public static void main(String[] args) {
int weight = 1; // 定义表示货物的重量的变量
int path = 50; // 定义路途的变量
int price = 5; // 定义表示价格的变量
int Overweightprice = 2; // 定义超重的附加费
int n = 0, m = 0; // 递增变量
int[][] details = new int[10][5]; // 创建一个数组,装有货物重量在1~5千克,路程在50~5000公里内的所有快递价格
for (int i = 0; i < details.length; i++) { // 行表示路程
details[0] = price; // 为每个路程段赋不超重时的快递费
for (int j = 1; j < details.length; j++) { // 列表示超重的重量数,单位为千克
details[j] = details[0] + j * Overweightprice; //算出每超重j千克,应付的快递费
}
price++;
Overweightprice++;
}
System.out.println("货物重量在1~5千克,路程在50~5000公里内的所有收费明细如下:");
for (int i = 0; i < details.length; i++) { // 行表示路程
m = 0;
System.out.println("路程为" + (path + (n * path)) + "公里");
for (int j = 1; j < details.length; j += 2) { // 列表示超重的重量数,单位为千克
System.out.println("重量为" + (weight + (m * weight))
+ "千克,其快递费为:" + details[j - 1] + " " + "重量为"
+ (weight + ((m + 1) * weight)) + "千克,其快递费为:"
+ details[j]);
m = m + 2;
}
n++;
if (details.length % 2 == 1) {
System.out.println("重量为" + (weight + (m * weight))
+ "千克,其快递费为:" + details[details.length - 1]);
}
}
}
}
|
|