为鼓励居民节约用水,自来水公司采取按用水量阶梯式计价的办法,居民应交水费y(元)与月用水量x(吨)相关:当x不超过15吨时,y=4x/3;超过后,y=2.5x-17.5。请编写程序实现水费的计算。
输入格式:输入在一行中给出非负实数x。
输出格式:在一行输出应交的水费,精确到小数点后2位。
输入样例1:12
输出样例1:16.00
输入样例2:16
输出样例2:22.50
import java.text.DecimalFormat; import java.util.Scanner; public class IO_1009 { public static void main(String[] args) { int x; double y; DecimalFormat df = new DecimalFormat("0.00"); Scanner input = new Scanner(System.in); x=input.nextInt(); if (x < 15) y = (double)(x) * 4 / 3; else y = 2.5 * (double)(x) - 17.5; System.out.println(df.format(y)); input.close(); } }
import java.text.DecimalFormat; import java.util.Scanner; public class IO_1009 { public static void main(String[] args) { double x; double y; DecimalFormat df = new DecimalFormat("0.00"); Scanner input = new Scanner(System.in); x=input.nextInt(); if (x < 15) y = (x) * 4 / 3; else y = 2.5 * (x) - 17.5; System.out.println(df.format(y)); input.close(); } }
以上两个别人写的都可以通过PAT。
下面是我自己写的却不行,提示“返回非零”,这是为什么呢??谁能告诉我。
import java.util.Scanner; import java.text.DecimalFormat; public class Main { public static void main(String[] args) { double x,y; DecimalFormat df = new DecimalFormat("0.00"); Scanner input = new Scanner(System.in); x = input.nextDouble(); if(x <= 15) y = x * 4 / 3; else y = x * 2.5 - 17.5; System.out.print(df.format(y)); } }
时间: 2024-11-08 00:28:19