算出number(一行保存一个数字)文件中和最大的连续行数,打印开始结束行号,打印最大的和
2014-04-03 17:27
513 查看
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class JFQ_Number {
private static final String FILE_PATH = "/home/lifeix/number";
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
startNumber();
}
private static void startNumber() throws IOException {
FileInputStream fis = new FileInputStream(new File(FILE_PATH));
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line = br.readLine();
int count = 0;
int currentSum = 0;
int startLine = 0;
int endLine = 0;
int lastSum = currentSum;
int tempSum = 0;
while(line != null) {
count++;
int l = Integer.parseInt(line.trim());
if(count <3) {
currentSum += l;
endLine = count;
lastSum = currentSum;
} else {
tempSum = currentSum;
currentSum += l;
if(tempSum < currentSum) {
if(currentSum < l) {
currentSum = l;
startLine = count;
}
if(lastSum < currentSum) {
lastSum = currentSum;
endLine = count;
}
} else {
if(lastSum < tempSum) {
lastSum = tempSum;
}
}
}
line = br.readLine();
}
System.out.println("startLine=" + startLine + ", endLine=" +endLine + ", sumline=" + lastSum);
}
}
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class JFQ_Number {
private static final String FILE_PATH = "/home/lifeix/number";
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
startNumber();
}
private static void startNumber() throws IOException {
FileInputStream fis = new FileInputStream(new File(FILE_PATH));
BufferedReader br = new BufferedReader(new InputStreamReader(fis));
String line = br.readLine();
int count = 0;
int currentSum = 0;
int startLine = 0;
int endLine = 0;
int lastSum = currentSum;
int tempSum = 0;
while(line != null) {
count++;
int l = Integer.parseInt(line.trim());
if(count <3) {
currentSum += l;
endLine = count;
lastSum = currentSum;
} else {
tempSum = currentSum;
currentSum += l;
if(tempSum < currentSum) {
if(currentSum < l) {
currentSum = l;
startLine = count;
}
if(lastSum < currentSum) {
lastSum = currentSum;
endLine = count;
}
} else {
if(lastSum < tempSum) {
lastSum = tempSum;
}
}
}
line = br.readLine();
}
System.out.println("startLine=" + startLine + ", endLine=" +endLine + ", sumline=" + lastSum);
}
}
相关文章推荐
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符
- 编写一个程序,一行行地读取输入行,直至到达文件尾。算出每行输入行的长度,然后把最长的那行打印出来。为了简单起见,你可以假定所有的输入行均不超过1000个字符。
- 接收一个文件内容,通过读取开始和结束标志,分别将其内容保存到不同的文件中
- Python读取文件中一串字符串并且把其中所有的数字组成一个新的字符串,并且打印出来
- 从键盘接受一个数字,打印该数字表示的时间,最大单位到天
- 假设有一个二维数组:int a[3][3]={初始化了值};求出一种数字——在这一行最大在这一列最小 前提:最大值只有一个,最小值也只有一个。
- 4.编程打印一个二维数组中所有元素的和,并打印最大值,最小值(以及它们所在的行号和列号)
- 合法IP&窗口最大值数组&打印素数&递归逆序一个栈&栈排序另一个栈&MyString&寻找数组中出现的重复字符&数组中的重复数字&逆序打印链表&空格替换成%20
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- 一个WinForm记事本程序(包含主/下拉/弹出菜单/打开文件/保存文件/打印/页面设置/字体/颜色对话框/剪切版操作等等控件用法以及记事本菜单事件/按键事件的具体代码)
- php 读取一个文档的任意开始行数与结束行数
- 找出二叉树中和最大的路径,路径可以从任意节点开始,到任意节点结束。
- 指定一个开始日期和结束日期,算出中间的日期
- ROW_NUMBER()函数可以计算每一行数据在结果集中的行号(从1开始计数)
- C语言:从键盘输入一个字符串,以感叹号!作为结束标志,将其中的小写字母全部转换成大写字母,然后输出到一个磁盘文件test中保存。
- 求一个字符串s的最大连续递增数字子串
- 输入整形数组,数组里有正数也有负数,数组中一个或连续的多个整数组成数组的子数组,求所有子数组中和的最大值 ,例如输入的数组为{1,-2,3,10,-4,7,2,-5}和最大的子数组为{3,10,
- 编程题:在一个N*N的数组中寻找所有横,竖,左上到右下,右上到左下,四种方向的直线连续D个数字的和里面最大的值
- 黑马程序员——从键盘接受一个数字,打印该数字表示的时间,最大单位到天