• 课堂作业3


    package 数组;
    
    
    
    import java.util.Scanner;
    
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.InputMismatchException;
    
    public class shuzu
    {
        public static void main(String[] args)
        {
            long start = System.currentTimeMillis();//获取开始的时间
            
            int LENGTH=1000000;//设置取数的范围
            int FANWEI=10000;
            int inum;
            int j=0;
            int m=0;
            int i=0,r=0,k=0;
            
            String snum="";
            String fileName="D:/xin.txt";//设置要读取的文件夹
            int [] num=new int[LENGTH];
             int array[]=new int[LENGTH];
             long maxsum=array[0];
             long maxstart=array[0];
            
            try
            {
                File f=new File(fileName);
                if(!f.exists())//判读按文件是否存在
                {
                    throw new Exception("文件"+fileName+"不存在");
                }
                
                FileWriter fw=new FileWriter(f);
                PrintWriter pw=new PrintWriter(fw);
            for( k=0;k<LENGTH;k++,m++)
                    {
                        inum=(int)(1+Math.random()*FANWEI*2)-FANWEI;//获取随机数
                        pw.print(inum+" ");//将随机数写入文件夹
                        if(m==20)
                            {
                                pw.print("
    ");
                                m=0;
                            }
                    }
                    pw.flush();
    
                FileReader fr=new FileReader(f);//读取文件内容
                Scanner in=new Scanner(fr);
                if(!in.hasNext())
                {
                    throw new Exception("文件"+fileName+"内容为空");//判断文件内容是否为空
                }
                while(in.hasNext())
                {
                    
                    
                     if(maxstart<0)
                        {
                            maxstart=0;
                        }
                        maxstart+=in.nextInt();
                        if(maxstart>=(Long.MAX_VALUE/2-1)||maxstart<=(Long.MIN_VALUE/2-1))//设置范围
                        {
                            throw new Exception("数字过大溢出");//超出范围之后,显示数字过大溢出
                        }
                        if(maxstart>maxsum)
                            maxsum=maxstart;
                    j++;
                }
                
               
                System.out.println("答案为:	"+maxsum);//输出最后答案
    
            }
            catch(InputMismatchException e2)
            {
                System.out.println("数字过大或输入格式不对");
            }
            catch(Exception e)
            {
                System.out.println("错误于:	"+i);
                System.out.println("错误!!!");
                System.out.println(e.getMessage());
                e.printStackTrace();
            }
            
            
                    long end = System.currentTimeMillis();//获取结束的时间
                    System.out.println("程序运行时间:"+(end-start)+"ms");//得出最终的时间
            
        }
    }

    思路:先设定文件中可以存放的数字个数范围,然后设定一个文件夹,随机产生数字,写入该文件夹中,然后读取文件中的数字,找出最后想要的结果,然后在程序的开始获取开始是的时间,然后在结束,获取结束时的时间,然后就可以得出计算所用的时间。

    最终结果截图为:

  • 相关阅读:
    理解WebKit和Chromium: Web应用和Web运行环境
    理解WebKit和Chromium: 网页渲染的基本过程
    【闲谈】我的大学
    使用GDAL将下载的Google卫星图像转为带坐标的tif
    Linux下使用GDAL进行开发(automake使用)
    Linux下编译GDAL
    【Unity技巧】统一管理回调函数——观察者模式
    【Unity技巧】使用单例模式Singleton
    【Unity插件】LitJson杂谈
    理解WebKit和Chromium:Chromium资源磁盘缓存
  • 原文地址:https://www.cnblogs.com/zhaoxinhui/p/10548910.html
Copyright © 2020-2023  润新知