设计思路 : 本题为个人作业1的续 要求在数量级 与数值范围上做突破 同时要抛出错误 安全退出
首先 在数量级上 我使用了double 类型 在数量上 for循环是可以的 但是比较慢 我试了100万100万级 的数没报错 但是显示的 比较慢 不知道是神魔原因
package main;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileReader;import java.io.FileWriter;import java.io.IOException;import java.io.PrintStream;import java.util.Scanner;public class Item { @SuppressWarnings("resource") public static void main(String args[]) throws Exception { System.out.println("输入数量 n和数量级m:"); Scanner in=new Scanner(System.in); int n=in.nextInt(); Scanner in1=new Scanner(System.in); int m=in1.nextInt(); PrintStream ps = new PrintStream("C:\\Users\\long.19981105\\Desktop/Ditie.txt"); for(int i=0;i=0的话,就加; //当数组全为负数的时候只要有加法就一定比原来的数小,此时就相当于找出数组内最大的数 if(sum >= 0) { sum += array[i]; } else{ sum = array[i]; //否则从当前位置重新计算 } if(sum > max){ max = sum; } } return max; } /* * 生成m数量级的随机数 */ public static int random(int m) { int num=(int)((Math.random())*m); return num; } /* * 输出到文件中 */ public static void writeFile() { try { File writeName = new File("C:\\\\Users\\\\long.19981105\\\\Desktop/Ditie.txt"); // 相对路径,如果没有则要建立一个新的output.txt文件 writeName.createNewFile(); // 创建新文件,有同名的文件的话直接覆盖 try (FileWriter writer = new FileWriter(writeName); BufferedWriter out = new BufferedWriter(writer) ) { out.write(""); // \r\n即为换行 out.write(""); // \r\n即为换行 out.flush(); // 把缓存区内容压入文件 } } catch (IOException e) { e.printStackTrace(); } } }
100万数量级的 未能算出结果 抛出错误也未能实现
个人反思 :
数量级 不能仅用数字类型来限定 现实生活中 总会有超出 范围的一天
代码要有 现实意义 安全退出 是数据保存的重要依据