zoukankan      html  css  js  c++  java
  • 个人作业2

    作业1链接:https://www.cnblogs.com/wxy2000/p/10506716.html

    要求:

    • 数组从文件读取
    • 输入很大的数组,和很多大的数字保持你的程序正常输出
    • 若输入文件的参数有错误,程序能正常退出,并显示相应的错误。任何错误都不能使程序崩溃

    设计思路:

    1. 利用random随机生成很大的数组
    2. 用out.write将数组写入到txt文件中
    3. 采用biginteger解决int型数据的大小受到限制的问题
    4. 求最大子数组和的方法同作业1

    遇到的问题:

    1. 不了解biginteger的使用,后来经过同学的知道解决了
    2. 输入某些异常时没用提示,正在完善

    源代码:

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.IOException;
    import java.util.Scanner;
    
    
    public class Q_31 {
    	static Scanner sc=new Scanner(System.in);
    	 static float d=Float.NEGATIVE_INFINITY;
    
     public static void main(String[] args) throws IOException {
     
    	 
    	 
    	//输入数组长度
    	int n1=0;
    	System.out.println("请输入数组的长度");
    	n1=sc.nextInt();
    	
    
    	//随机生成数组
      int[] a=new int [n1];
     
    	//System.out.println("请输入"+n1+"个 整数");
      for(int i=0;i<n1;i++){
    	  
    	    a[i] =(int) (Math.random()*1000)-500;
    	    System.out.println(a[i]);
    	   
    	   
    	  }
    	
    	
    	
    	//调用函数输出结果
      int maxSum = getMaxSum(a);
      System.out.println("最大子数组的和为:" + maxSum);
    
    
      
      
      
     
      File file = new File("d:\array.txt");  //存放数组数据的文件
     
      FileWriter out = new FileWriter(file);  //文件写入流
     
      //将数组中的数据写入到文件中
      for(int i=0;i<a.length;i++){
       
        out.write(a[i]+"	");
      
       //out.write("
    ");
      }
    
      out.write("最大子数组的和为:" + maxSum);
      out.close();
     
     
      }
    
     private static int getMaxSum(int[] a) {
    	   
    	    int n = a.length;
    	   int max1 =(int) d;//令最大值等于无穷小
    	    for (int i = 0; i < n; i++) {
    	        int sum = 0;
    	        for (int j = i; j < n; j++) {
    	            sum += a[j];
    	            if (max1 < sum) {
    	                max1 = sum;
    	            }
    	        }
    	    }
    
    	    return max1;
    	}
     }
    

      

    运行结果:

     

    迷失在灿烂之中 消失在万里晴空
  • 相关阅读:
    Linux(CentOS6.5)下编译安装Nginx官方最新稳定版(nginx-1.10.0)
    Linux(CentOS6.5)修改系统市区被中国标准时间(北京时间)
    Linux(以CentOS6.5示例)下安装Oracle官方最新版JDK(JDK1.8)
    Linux发行版 CentOS6.5下删除分区操作
    Linux发行版 CentOS6.5下的分区操作
    Linux发行版 CentOS6.5 禁用防火墙步骤
    [置顶] drools规则引擎因为内存泄露导致的内存溢出
    架构师必读经典
    Google Chart API学习(二)
    Google Chart API学习(一)
  • 原文地址:https://www.cnblogs.com/wxy2000/p/10590336.html
Copyright © 2011-2022 走看看