62,615
社区成员
发帖
与我相关
我的任务
分享
import java.util.Scanner;
public class test5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
final double cost=26.5,sum;
int num;
Scanner input=new Scanner(System.in);
num=input.nextInt();
if(num<100) {
sum=cost*num;
}else if(num<500) {
sum=cost*num*0.9;
}else {
sum=cost*num*0.8-1000;
}
System.out.println("共买了"+num+"本总价为:"+sum);
}
}
[/quote]买 -100 本,多少钱?
import java.util.Scanner;
public class test5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
final double cost=26.5,sum;
int num;
Scanner input=new Scanner(System.in);
num=input.nextInt();
if(num<100) {
sum=cost*num;
}else if(num<500) {
sum=cost*num*0.9;
}else {
sum=cost*num*0.8-1000;
}
System.out.println("共买了"+num+"本总价为:"+sum);
}
}
[/quote]
在类中找不到main方法,请将main定义为:public static void main(String[] args)
大佬,这个什么意思?[/quote]
算法不对 不全面啊import java.util.*;
interface Condition {
public boolean meet(int bookCount);
}
class ConditionLess100 implements Condition {
public boolean meet(int bookCount) {
return bookCount < 100;
}
}
class ConditionBetween100And500 implements Condition {
public boolean meet(int bookCount) {
return (100 <= bookCount) && (bookCount < 500);
}
}
class ConditionGreaterThan500 implements Condition {
public boolean meet(int bookCount) {
return 500 <= bookCount;
}
}
interface Discount {
public double discount(double originPrice);
}
class Discount90 implements Discount {
public double discount(double originPrice) {
return originPrice * 0.9;
}
}
class DiscountReturn1000 implements Discount {
public double discount(double originPrice) {
if (originPrice > 1000) {
return originPrice - 1000;
}
return 0.0;
}
}
class DiscountChain implements Discount {
private ArrayList<Discount> discounts = new ArrayList<>();
DiscountChain addDiscount(Discount discount) {
discounts.add(discount);
return this;
}
public double discount(double price) {
for (Discount d: discounts) {
price = d.discount(price);
}
return price;
}
}
class DiscountSystem {
HashMap<Condition, Discount> discountTable = new HashMap<>();
void add(Condition condition, Discount discount) {
discountTable.put(condition, discount);
}
double getPrice(double unitPrice, int count) {
double price = unitPrice * count;
for (Map.Entry<Condition, Discount> entry: discountTable.entrySet()) {
if (entry.getKey().meet(count)) {
price = entry.getValue().discount(price);
break;
}
}
return price;
}
}
public class A {
public static void main(String[] args) {
DiscountSystem discountSystem = new DiscountSystem();
discountSystem.add(new ConditionBetween100And500(), new Discount90());
discountSystem.add(new ConditionGreaterThan500(), new DiscountChain().addDiscount(new Discount90()).addDiscount(new DiscountReturn1000()));
for (double x: new double[] {
discountSystem.getPrice(26.5, 8),
discountSystem.getPrice(26.5, 150),
discountSystem.getPrice(26.5, 600)
}) {
System.out.println(x);
}
}
}