2015年蓝桥杯JavaB组表格计算
来源:互联网 发布:淘宝上添加剂少的零食 编辑:程序博客网 时间:2024/06/10 18:28
个人代码,如果大家有更好的优化意见可以留言
import java.util.Scanner;
public class Main2 {
public static int indexN =0;
public static int indexM =0;
public static void main(String[] args) {
Scanner sc= new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
String[][] arr= new String[n][m];
for(int i=0;i<arr.length;i++){
for(int j =0;j<arr[i].length;j++){
arr[i][j] =sc.next();
}
}
displayAll(arr);
}
public static void displayAll(String[][] arr){
if(indexN==arr.length){
}else{
if(indexM<arr[indexN].length){
if(arr[indexN][indexM].contains("SUM")){
int x1=Integer.parseInt(arr[indexN][indexM].substring(4, 5));
int y1=Integer.parseInt(arr[indexN][indexM].substring(6, 7));
int x2=Integer.parseInt(arr[indexN][indexM].substring(8, 9));
int y2=Integer.parseInt(arr[indexN][indexM].substring(10, 11));
System.out.print(SUM(x1,y1,x2,y2,arr)+" ");
}else if(arr[indexN][indexM].contains("AVG")){
int x1=Integer.parseInt(arr[indexN][indexM].substring(4, 5));
int y1=Integer.parseInt(arr[indexN][indexM].substring(6, 7));
int x2=Integer.parseInt(arr[indexN][indexM].substring(8, 9));
int y2=Integer.parseInt(arr[indexN][indexM].substring(10, 11));
System.out.print(AVG(x1,y1,x2,y2,arr)+" ");
}else if(arr[indexN][indexM].contains("STD")){
int x1=Integer.parseInt(arr[indexN][indexM].substring(4, 5));
int y1=Integer.parseInt(arr[indexN][indexM].substring(6, 7));
int x2=Integer.parseInt(arr[indexN][indexM].substring(8, 9));
int y2=Integer.parseInt(arr[indexN][indexM].substring(10, 11));
System.out.print(STD(x1,y1,x2,y2,arr)+" ");
}
else{
System.out.print(Float.parseFloat(arr[indexN][indexM])+" ");
}
indexM++;
displayAll(arr);
}else{
System.out.println();
indexN++;
indexM=0;
displayAll(arr);
}
}
}
public static float AVG(int x1,int y1,int x2,int y2,String[][] arr){
int index =0;
float avg = 0;
for(int i=x1-1;i<=x2-1;i++){
for(int j =y1-1;j<=y2-1;j++){
index++;
if(arr[i][j].contains("SUM")){
int x3=Integer.parseInt(arr[i][j].substring(4, 5));
int y3=Integer.parseInt(arr[i][j].substring(6, 7));
int x4=Integer.parseInt(arr[i][j].substring(8, 9));
int y4=Integer.parseInt(arr[i][j].substring(10, 11));
avg+=SUM(x3,y3,x4,y4,arr);
}else if(arr[i][j].contains("AVG")){
int x3=Integer.parseInt(arr[i][j].substring(4, 5));
int y3=Integer.parseInt(arr[i][j].substring(6, 7));
int x4=Integer.parseInt(arr[i][j].substring(8, 9));
int y4=Integer.parseInt(arr[i][j].substring(10, 11));
avg+=AVG(x3,y3,x4,y4,arr);
}else if(arr[i][j].contains("STD")){
int x3=Integer.parseInt(arr[i][j].substring(4, 5));
int y3=Integer.parseInt(arr[i][j].substring(6, 7));
int x4=Integer.parseInt(arr[i][j].substring(8, 9));
int y4=Integer.parseInt(arr[i][j].substring(10, 11));
avg+=STD(x3,y3,x4,y4,arr);
}
else{
avg+=Float.parseFloat(arr[i][j]);
}
}
}
return avg/index;
}
public static float STD(int x1,int y1,int x2,int y2,String[][] arr){
float avg = AVG(x1,y1,x2,y2,arr);
int index =0;
float std = 0;
for(int i=x1-1;i<=x2-1;i++){
for(int j =y1-1;j<=y2-1;j++){
index++;
if(arr[i][j].contains("SUM")){
int x3=Integer.parseInt(arr[i][j].substring(4, 5));
int y3=Integer.parseInt(arr[i][j].substring(6, 7));
int x4=Integer.parseInt(arr[i][j].substring(8, 9));
int y4=Integer.parseInt(arr[i][j].substring(10, 11));
std+=(float) Math.pow((SUM(x3,y3,x4,y4,arr)-avg),2);
}else if(arr[i][j].contains("AVG")){
int x3=Integer.parseInt(arr[i][j].substring(4, 5));
int y3=Integer.parseInt(arr[i][j].substring(6, 7));
int x4=Integer.parseInt(arr[i][j].substring(8, 9));
int y4=Integer.parseInt(arr[i][j].substring(10, 11));
std+=(float) Math.pow((AVG(x3,y3,x4,y4,arr)-avg),2);
}else if(arr[i][j].contains("STD")){
int x3=Integer.parseInt(arr[i][j].substring(4, 5));
int y3=Integer.parseInt(arr[i][j].substring(6, 7));
int x4=Integer.parseInt(arr[i][j].substring(8, 9));
int y4=Integer.parseInt(arr[i][j].substring(10, 11));
std+=(float) Math.pow((STD(x3,y3,x4,y4,arr)-avg),2);
}
else{
std+=(float) Math.pow((Float.parseFloat(arr[i][j])-avg),2);
}
}
}
return std/index;
}
public static float SUM(int x1,int y1,int x2,int y2,String[][] arr){
float sum = 0;
for(int i=x1-1;i<=x2-1;i++){
for(int j =y1-1;j<=y2-1;j++){
if(arr[i][j].contains("SUM")){
int x3=Integer.parseInt(arr[i][j].substring(4, 5));
int y3=Integer.parseInt(arr[i][j].substring(6, 7));
int x4=Integer.parseInt(arr[i][j].substring(8, 9));
int y4=Integer.parseInt(arr[i][j].substring(10, 11));
sum+=SUM(x3,y3,x4,y4,arr);
}else if(arr[i][j].contains("AVG")){
int x3=Integer.parseInt(arr[i][j].substring(4, 5));
int y3=Integer.parseInt(arr[i][j].substring(6, 7));
int x4=Integer.parseInt(arr[i][j].substring(8, 9));
int y4=Integer.parseInt(arr[i][j].substring(10, 11));
sum+=AVG(x3,y3,x4,y4,arr);
}else if(arr[i][j].contains("STD")){
int x3=Integer.parseInt(arr[i][j].substring(4, 5));
int y3=Integer.parseInt(arr[i][j].substring(6, 7));
int x4=Integer.parseInt(arr[i][j].substring(8, 9));
int y4=Integer.parseInt(arr[i][j].substring(10, 11));
sum+=STD(x3,y3,x4,y4,arr);
}
else{
sum+=Float.parseFloat(arr[i][j]);
}
}
}
return sum;
}
}
- 2015年蓝桥杯JavaB组表格计算
- 【蓝桥杯第六届javaB组国赛】表格计算
- 蓝桥杯 表格计算 2016年第六届蓝桥杯javaB组决赛第五题
- 2015年蓝桥杯JavaB组五星填数
- 蓝桥杯 五角填数 2015年JavaB组决赛试题
- 分机号 2015蓝桥杯JavaB组决赛试题
- 2015第六届蓝桥杯JavaB组省赛
- 第五届省赛javaB组- 三羊献瑞
- 明天参加蓝桥杯javaB组
- 蓝桥杯 穿越雷区 2015年第六届蓝桥杯JavaB组决赛第四题
- 错误票据(蓝桥杯JavaB组预赛)
- 黄金分割数(蓝桥杯JavaB组预赛)
- 带分数(蓝桥杯JavaB组预赛)
- 第六届蓝桥杯JAVAB组初赛第六题
- 第六届蓝桥杯JAVAB组初赛第三题
- 蓝桥杯-第七届省赛javaB组-凑算式
- 蓝桥杯-第七届省赛javaB组- 四平方和
- 第五届省赛javaB组--生命之树
- Linux网络连接模式以及修改静态IP
- leetcode 70. Climbing Stairs爬梯子(DP问题)
- 小班研讨课的感想
- isEqual
- 编辑距离问题
- 2015年蓝桥杯JavaB组表格计算
- C# Linq查询的基本练习
- Python基础学习(3)
- C#事件学习
- 删除元素,在原数组上
- numpy.linspace使用详解
- maven多工程应用,spring MAVEN多个子模块之间的调用
- 外观模式
- load 和 initialize比较