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;
    	}
     }
    

      

    运行结果:

     

    迷失在灿烂之中 消失在万里晴空
  • 相关阅读:
    「UVA12293」 Box Game
    「CF803C」 Maximal GCD
    「CF525D」Arthur and Walls
    「CF442C」 Artem and Array
    LeetCode lcci 16.03 交点
    LeetCode 1305 两棵二叉搜索树中的所有元素
    LeetCode 1040 移动石子直到连续 II
    LeetCode 664 奇怪的打印机
    iOS UIPageViewController系统方法崩溃修复
    LeetCode 334 递增的三元子序列
  • 原文地址:https://www.cnblogs.com/wxy2000/p/10590336.html
Copyright © 2011-2022 走看看