新要求:

  1、要求数组从文件读取。

  2、如果输入的数组很大, 并且有很多大的数字, 就会产生比较大的结果 (考虑一下数的溢出), 请保证你的程序能正常输出。

  3、如果输入文件的参数有错误, 这个程序应该能正常退出, 并显示相应的错误信息。 任何输入错误都不能导致你的程序崩溃。

这次测试实在上一篇博客的基础上进行优化修改的(用的是上篇博客中的第三种方法)。

用Flie类+BufferedReader读取文件。

因为考虑到大数字,int类型是不能用的,这里将读入的字符串转换为大数(BigInteger类),运用已有的函数进行计算。

用try-catch语句来检测文件中的异常字符。

代码只能从文件中读取100个数字,还不知道如何灵活读取,这个缺点有待解决。

package about_bank_account;import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.math.BigInteger;public class Test {@SuppressWarnings("resource")public static void main (String[] args) throws IOException{String line = null;String snum[] = new String[100];String sp[] = null;File file = new File("Number.txt"); BufferedReader br = new BufferedReader(new FileReader(file));int temp = 0;int k = 0;int i = 0;BigInteger big[] = new BigInteger[100];BigInteger bigrmax = new BigInteger("0");BigInteger bigmax = new BigInteger("0");int jianceshu = 0;//读文件    while((line=br.readLine())!=null) {sp = line.split(" ");//按空格进行分割for(i=0;i<sp.length;i++){                    snum[temp] = sp[i];temp++;                }}//检测文件中异常try { for(i = 0; i<snum.length; i++) {//转化为大数if(snum[i] != null) {big[i] = new BigInteger(snum[i]);        //System.out.println(big[i]);
                }}} catch(NumberFormatException e) { System.out.println("文件中存在异常字符!"); jianceshu = 1;            } //若无异常,执行if(jianceshu == 0) {i = 0;while(big[i] != null) {k++;i++;}//求子数组最大值BigInteger b0=new BigInteger("0");bigrmax = big[0];for(i = 0; i<k; i++) {if((bigmax.compareTo(b0) < 0) || bigmax.equals(b0)){bigmax = big[i];//System.out.println("+++"+bigmax);//记录}else {bigmax = bigmax.add(big[i]);//System.out.println("///"+bigmax);//记录
                }if(bigrmax.compareTo(bigmax) < 0) {bigrmax = bigmax;//System.out.println("---"+bigrmax);//记录
                }}System.out.println("结果"+bigrmax);}}
}

转载于:https://www.cnblogs.com/leity/p/10545983.html

关于返回一个整数数组中最大子数组的和的问题(续01)相关推荐

  1. 软工 课堂作业:选出一个整数组中最大子数组

    项目计划日志       10.6 看ppt,熟悉内容.       10.6下午,开始编程调试.       10.7 运行调试,写博客.                   时间记录日志 日期 开 ...

  2. 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)

    一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...

  3. 返回一个首尾相接的二维整数数组中最大子数组的和

    题目: ·返回一个二维整数数组中最大子数组的和. 要求: ·输入一个二维整形数组,数组里有正数也有负数. ·二维数组首尾相接,象个一条首尾相接带子一样. ·数组中连续的一个或多个整数组成一个子数组,每 ...

  4. 返回一个二维整数数组中最大子数组的和(二人结对)

    题目:返回一个二维整数数组中最大子数组的和 要求:1.输入一个二维整型数组,数组里有正数也有负数. 2.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值. ...

  5. 返回一个整数数组中最大子数组的和---环形数组

    一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]--A[j- ...

  6. 软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)

    题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为 ...

  7. 返回一个整数数组中最大子数组的和。

    一.要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果数组A[0]--A[j-1]首尾相邻,允许A[i-1],. ...

  8. 课堂练习:返回一个二维数组中最大子数组的和

    1.题目: 返回一个二维数组中最大子数组的和. 2.要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子 ...

  9. 返回一个循环数组中最大子数组的和

    设计思路 首先利用rand()函数随机产生一个一维数组,数组长度通过宏定义来控制.求首尾连接的一维数组的最大子数组的和我的思路是:循环N次(N是数组的长度)依次检测数组的最大子数组的和再比较大小,保留 ...

  10. 求二维整数数组中最大子数组的和(结对作业)

    题目:返回一个二维整数数组中最大子数组的和 要求:(1)输入一个二维整形数组,数组里有正数也有负数. (2)二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. (3)求所有子数组的和最大 ...

最新文章

  1. Azure Automation 自动化-自动关闭Azure
  2. GOS系列之下载附件
  3. Coursera吴恩达《卷积神经网络》课程笔记(3)-- 目标检测
  4. subprocess中执行git命令报告no such file or directory一例
  5. 在c#中将debug/release下文件打包成一个可直接运行exe文件
  6. postman+newman生成html报告
  7. mysql——decimal类型与decimal长度
  8. Django与jQuery通信;Django前后端传值
  9. javascript -- 事件--事件流-- 冒泡 --捕获
  10. 如何使用“查找”App 定位丢失的设备或物品?
  11. 动易模板——制作前的准备工作
  12. 达观RPA自动订单处理机器人, 助力制造业订单处理效率提升
  13. base64码通过http传输 +号变 空格 问题解决
  14. 良葛格学习笔记输入输入一章中的PushbackInputStream的补充
  15. Redis高性能缓存数据库
  16. 谷歌JsonObject
  17. 关于输入法,想说点什么了
  18. 10年程序员怒斥:只会八股文没用,公司招你来是做项目的,不是背题的……
  19. merge into 的用法
  20. 软件工程师的职业之路

热门文章

  1. C++算法学习(贪心算法)
  2. C++算法学习(力扣:面试题 16.04. 井字游戏)
  3. HTML中浮动的特性,浅谈CSS浮动的特性
  4. php自动获取节气对应的年月日_php 根据时间获取二十四节气,返回json
  5. 计算机编程的计算法,计算方法
  6. oracled update_oracle中要谨慎使用update交叉更新!
  7. 第十八章_后端架构选型、离线及实时计算
  8. [机器学习]关联挖掘介绍
  9. linux令普通用户拥有root权限
  10. 高手云集 WCTF世界黑客大师赛今日开战