关于返回一个整数数组中最大子数组的和的问题(续01)
新要求:
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)相关推荐
- 软工 课堂作业:选出一个整数组中最大子数组
项目计划日志 10.6 看ppt,熟悉内容. 10.6下午,开始编程调试. 10.7 运行调试,写博客. 时间记录日志 日期 开 ...
- 结对开发——返回一个整数数组中最大子数组的和 (首尾相接版)
一.题目及题目要求 题目:返回一个整数数组中最大子数组的和. 要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果 ...
- 返回一个首尾相接的二维整数数组中最大子数组的和
题目: ·返回一个二维整数数组中最大子数组的和. 要求: ·输入一个二维整形数组,数组里有正数也有负数. ·二维数组首尾相接,象个一条首尾相接带子一样. ·数组中连续的一个或多个整数组成一个子数组,每 ...
- 返回一个二维整数数组中最大子数组的和(二人结对)
题目:返回一个二维整数数组中最大子数组的和 要求:1.输入一个二维整型数组,数组里有正数也有负数. 2.二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. 3.求所有子数组的和的最大值. ...
- 返回一个整数数组中最大子数组的和---环形数组
一.题目要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整形数组,数组里有正数也有负数. 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. 如果数组A[0]--A[j- ...
- 软件工程结对开发——返回一个整数数组中最大子数组的和(JAVA)
题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为 ...
- 返回一个整数数组中最大子数组的和。
一.要求: (1)输入一个整形数组,数组里有正数也有负数. (2)数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和. (3)如果数组A[0]--A[j-1]首尾相邻,允许A[i-1],. ...
- 课堂练习:返回一个二维数组中最大子数组的和
1.题目: 返回一个二维数组中最大子数组的和. 2.要求: 输入一个二维整形数组,数组里有正数也有负数. 二维数组首尾相接,象个一条首尾相接带子一样. 数组中连续的一个或多个整数组成一个子数组,每个子 ...
- 返回一个循环数组中最大子数组的和
设计思路 首先利用rand()函数随机产生一个一维数组,数组长度通过宏定义来控制.求首尾连接的一维数组的最大子数组的和我的思路是:循环N次(N是数组的长度)依次检测数组的最大子数组的和再比较大小,保留 ...
- 求二维整数数组中最大子数组的和(结对作业)
题目:返回一个二维整数数组中最大子数组的和 要求:(1)输入一个二维整形数组,数组里有正数也有负数. (2)二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和. (3)求所有子数组的和最大 ...
最新文章
- Azure Automation 自动化-自动关闭Azure
- GOS系列之下载附件
- Coursera吴恩达《卷积神经网络》课程笔记(3)-- 目标检测
- subprocess中执行git命令报告no such file or directory一例
- 在c#中将debug/release下文件打包成一个可直接运行exe文件
- postman+newman生成html报告
- mysql——decimal类型与decimal长度
- Django与jQuery通信;Django前后端传值
- javascript -- 事件--事件流-- 冒泡 --捕获
- 如何使用“查找”App 定位丢失的设备或物品?
- 动易模板——制作前的准备工作
- 达观RPA自动订单处理机器人, 助力制造业订单处理效率提升
- base64码通过http传输 +号变 空格 问题解决
- 良葛格学习笔记输入输入一章中的PushbackInputStream的补充
- Redis高性能缓存数据库
- 谷歌JsonObject
- 关于输入法,想说点什么了
- 10年程序员怒斥:只会八股文没用,公司招你来是做项目的,不是背题的……
- merge into 的用法
- 软件工程师的职业之路
热门文章
- C++算法学习(贪心算法)
- C++算法学习(力扣:面试题 16.04. 井字游戏)
- HTML中浮动的特性,浅谈CSS浮动的特性
- php自动获取节气对应的年月日_php 根据时间获取二十四节气,返回json
- 计算机编程的计算法,计算方法
- oracled update_oracle中要谨慎使用update交叉更新!
- 第十八章_后端架构选型、离线及实时计算
- [机器学习]关联挖掘介绍
- linux令普通用户拥有root权限
- 高手云集 WCTF世界黑客大师赛今日开战