一,初版
package question20189;
import java.util.ArrayList;
import java.util.Scanner;
/*
* 卖菜:根据自己和左右两边的定价求出平均值,为第二天的定价
* 1.价钱改前和改后都为整数
* 2.第一位的只有自己和右边商店,最后一位只有自己后左边的商店
*
* 得分:10分(...还能在低点,不行我不放弃!!见test)
*
* */
public class Main {
public static void main(String[] args) {
Scanner s=new Scanner(System.in);
int num=s.nextInt();
ArrayList store=new ArrayList();
for(int i=0;i<num;i++) {
store.add(s.nextInt());
}
//计算
ArrayList Twostore=new ArrayList();
int price;
for(int i=0;i<num;i++) {
if(i>0&&i<num-1) {
int sum=(int)store.get(i-1)+(int)store.get(i)+(int)store.get(i+1);
if(sum%2==1) {
price=(sum-1)/3;
Twostore.add(i, price);
}else {
price=sum/3;
Twostore.add(i, price);
}
}else if(i==0) {
int sum=(int)store.get(i)+(int)store.get(i+1);
if(sum%2==1) {
price=(sum-1)/2;
Twostore.add(i, price);
}else {
price=sum/2;
Twostore.add(i, price);
}
}else if(i==(num-1)) {
int sum=(int)store.get(i)+(int)store.get(i-1);
if(sum%2==1) {
price=(sum-1)/2;
Twostore.add(i, price);
}else {
price=sum/2;
Twostore.add(i, price);
}
}
}
//输出
System.out.println("------这里是输出:\n");
System.out.println(store+"\n");
for(int i=0;i<num;i++) {
System.out.print(Twostore.get(i)+" ");
}
}
}
二,改进版
package question20189;
import java.util.ArrayList;
import java.util.Scanner;
/*
* 卖菜最终版:相比于Main.class,少了对和的比较,直接用的“/”
*
* 得分:100
*
* */
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s=new Scanner(System.in);
int num=s.nextInt();
ArrayList store=new ArrayList();
for(int i=0;i<num;i++) {
store.add(s.nextInt());
}
//计算
ArrayList Twostore=new ArrayList();
int price;
for(int i=0;i<num;i++) {
if(i>0&&i<num-1) {
int sum=(int)store.get(i-1)+(int)store.get(i)+(int)store.get(i+1);
price=sum/3;
Twostore.add(i, price);
}else if(i==0) {
int sum=(int)store.get(i)+(int)store.get(i+1);
price=sum/2;
Twostore.add(i, price);
}else if(i==(num-1)) {
int sum=(int)store.get(i)+(int)store.get(i-1);
price=sum/2;
Twostore.add(i, price);
}
}
for(int i=0;i<num;i++) {
System.out.print(Twostore.get(i)+" ");
}
}
}