java第六次作业
2013-04-23 10:24
459 查看
题目3
1. 商城返券活动
假设你正好需要购买N个该品牌的书包,书包单价M元一个。你需要花费多少现金就可以实现目标?
注意:每花费满200元才会返券100元,如果你花的现金为599只能返券200元。本题仅考虑购买一种商品的情形,感兴趣的同学可以根据生活中的实际情况对题目进行扩展。
输入:
书包的个数N,单价M。N为整数,M为浮点数。
输出:
实际购买到的书包个数和需要花费的现金数量。
参考老师答案:
import java.util.Scanner; public class Main { public static void main(String args[]) { Scanner input = new Scanner(System.in); int n = input.nextInt(); double m = input.nextDouble(); double x1 = Math.ceil((2 * (double) n) / 3); StdOut.print((new StringBuilder()).append((int) ((x1 * 3) / 2)).append(" ").toString()); double x2 = Math.floor((x1 * m) / 300) * 100; double x3 = x1 * m - x2; System.out.println(x3); } }
2.流数据的标准差
本题要求你实现上文最后提到的计算流数据标准差的方法。
输入:
原始的数据,预先不知道个数,double类型。
输出:
输入结束时输出读到的所有数据的标准差,请使用格式化字符串"%8.5f\n"进行输出。
import java.util.ArrayList; import java.util.List; public class Main { public static void main(String args[]) { List<Double> dataList = new ArrayList<Double>(); while (!StdIn.isEmpty()) { dataList.add(StdIn.readDouble()); } double m = dataList.get(0); double s = 0; double n = 1; // s为公式中Sk m为公式中的Mk n为公式中k dataList.get(i)为公式中的Xk for (int i = 1; i < dataList.size(); i++) { n += 1; s = s + ((n - 1) / n) * (dataList.get(i) - m) * (dataList.get(i) - m); m = m + (dataList.get(i) - m) / n; } double res = Math.sqrt(s / (n - 1)); StdOut.printf("%8.5f\n", res); } }
3. 矩阵运算库函数
输入:
矩阵A。第一行是元素的个数,之后是矩阵元素。
输出:
矩阵转置AT,加法A+AT,乘法A*AT的结果。请使用StdArrayIO.print()进行输出。
public class Main { public static void main(String[] args) { int n = StdIn.readInt(); int m = StdIn.readInt(); double[][] matrix = new double [m]; double[][] matrixTranspose = new double[m] ; double[][] matrixAdd = new double[m] ; double[][] matrixMultipli = new double[m] ; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { matrix[i][j] = StdIn.readDouble(); matrixTranspose[j][i] = matrix[i][j]; } } // 转置输出 StdArrayIO.print(matrixTranspose); // 加法A+AT for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { matrixAdd[i][j] = matrixTranspose[i][j] + matrix[i][j]; } } StdArrayIO.print(matrixAdd); // 乘法A*AT for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { double add = 0; for (int k = 0; k < m; k++) { add += matrix[i][k] * matrixTranspose[k][j]; } matrixMultipli[i][j] = add; } } StdArrayIO.print(matrixMultipli); } }
相关文章推荐
- java第六次作业
- JAVA第六次作业
- 201521123058 java第六次作业
- Java第六次作业
- 吉软_java57_第六次作业
- 第六次JAVA作业
- java-java57-第六次作业
- 第六次java作业
- JAVA第六次作业
- JAVA技术支持课--第六次java语言技术支持(课件及作业)
- Java第六次作业
- 第六次作业:Alpha阶段综合报告(Java-Team)
- Java第六次作业:RuPengGame setGameSize setGameTitle alert loadBgView playSound pause closeSound confirm input createText setTextPositi
- 第六次Java作业抽奖程序
- 第六次Java作业
- 第六次java作业
- java第六次作业(老师讲过后)
- Java第六次作业--异常处理和Java类集
- java第六次课后作业
- java第六次作业