英雄会上的一些题
来源:互联网 发布:比淘宝联盟好用的软件 编辑:程序博客网 时间:2024/04/20 16:17
题1:平安科技在线编程大赛:一份“奇妙”的银行流水
“求评论”
import java.text.DecimalFormat;import java.util.Scanner;import java.util.Vector;public class AmazingBank {public static void main(String[] args){Vector<Double[]> vector = new Vector<Double[]>();Scanner cin = new Scanner(System.in);String str = cin.next();while(cin.hasNext()) { str = cin.next(); if (str.equals("EOF")){break;}String[] strArr = str.split(";");Double[] tmp = new Double[3];for (int i = 1; i < 4; i++){if (strArr[i].equals("?")){tmp[i-1] = null;}else{ tmp[i-1] = Double.parseDouble(strArr[i]); } }vector.add(tmp); }cin.close();Vector<Double[]> ans = repairRecord(vector);DecimalFormat df = new DecimalFormat("#0.00");System.out.println("流水记录ID;收入;支出;余额");for (int i = 0; i < ans.size(); i++){System.out.print(""+(i+1)+";");Double[] tmp = ans.get(i);if (null != tmp[0])System.out.print(df.format(tmp[0])+";");elseSystem.out.print("?;");if (null != tmp[1])System.out.print(df.format(tmp[1])+";");elseSystem.out.print("?;");if (null != tmp[2])System.out.print(df.format(tmp[2])+"\n");elseSystem.out.print("?\n");}}public static Vector<Double[]> repairRecord(Vector<Double[]> arr){int arr_len = arr.size();int i = 0;int max_while = arr_len * 3; //最坏情况的搜索次数int count = 0; while(i < arr_len && count < max_while){Double[] xz_element = arr.get(i);if (null != xz_element[0]){if (0.0 < xz_element[0]){if (null == xz_element[1]){xz_element[1] = 0.0;}}}else{if (null != xz_element[1]){if (0.0 < xz_element[1]){xz_element[0] = 0.0;}}}if (null == xz_element[2] && 0 != i){Double[] qm_element = arr.get(i-1);if (null != qm_element[2] && null != xz_element[0] && null != xz_element[1]){xz_element[2] = qm_element[2] +xz_element[0]-xz_element[1];}}else{if (0 != i){Double[] qm_element = arr.get(i-1);if (null != qm_element[2]){double diff = xz_element[2] - qm_element[2];if (diff > 0){xz_element[0] = diff;xz_element[1] = 0.0;}else{xz_element[0] = 0.0;xz_element[1] = -diff;}}}}arr.remove(i);arr.add(i, xz_element);if (isElementOK(xz_element)){if (0 != i){Double[] qm_element = arr.get(i-1);if (!isElementOK(qm_element)) {qm_element[2] = xz_element[2] - xz_element[0] + xz_element[1];arr.remove(i-1);arr.add(i-1, qm_element);i--;}else{i++;}}else{i++;}}else{i++;}count++;}return arr;}// 判断一条记录是否完整private static boolean isElementOK(Double[] element){boolean ans = true;for (int i = 0; i < element.length; i++){if (null == element[i]){ans = false;break;}}return ans;}}
1 0
- 英雄会上的一些题
- 英雄会上的一些题
- 英雄会上的一些题
- 待解决的英雄会上的一些题
- CSDN英雄会上会英雄
- CSDN英雄会上会英雄
- CSDN英雄会上会英雄
- CSDN英雄会上会英雄
- CSDN英雄会上会英雄
- CSDN英雄会上会英雄
- CSDN英雄会上会英雄
- CSDN英雄会上会英雄
- CSDN英雄会上会英雄
- 系统部署交流会上,项目经理们共享的一些心得体会
- 前世千百次回眸换得英雄会上一次相聚
- 音乐会上接电话的下场
- 北京奥运会上的雷人图片
- 揭秘北京奥运会上的中国保镖[转贴]
- UDP:Java实现简单大文件传输
- AlarmManager研究
- IT忍者神龟之架构是什么?
- DSP6000的上电及供电
- Java和搜索
- 英雄会上的一些题
- Java中double类型的数据精确到小数点后两位
- 【MySQL】SQL语句实现简单的排名功能
- 读书札记-2013年12月
- 字符串移位包含的问题(编程之美)
- DSP6000的几个简单优化技巧
- hdu5033 最大仰望角
- 使用sun.misc.Cleaner或者PhantomReference实现堆外内存的自动释放
- 2014五个趋势--UI设计