Kevin234


私信TA

用户名:Kevin234

访问量:18900

签 名:

手可摘星辰

等  级
排  名 867
经  验 3453
参赛次数 0
文章发表 40
年  龄 0
在职情况 学生
学  校 南京信息工程大学
专  业

  自我简介:

解题思路:

注意事项:

参考代码:

import java.util.Scanner;

public class T1832 {
	public static int[] getRange(String s){
		int []a = {0,0,0,0,0};
		s = s.substring(4, s.length());
		Scanner sc = new Scanner(s);
		sc.useDelimiter("[,:)]");
		for(int i = 1;i<=4;i++){
			a[i] = sc.nextInt();
		}
		sc.close();
		return a;
	}
	public static double getValue(String [][]a,String s){
		double ans =0.0;
		//求和
		if(s.contains("U")){
			int []t = getRange(s);
			for(int i_ = t[1];i_<=t[3];i_++){
				for(int j_ = t[2];j_<=t[4];j_++){
					ans += getValue(a,a[i_][j_]);
				}
			}
		}
		//求平均值
		else if(s.contains("V")){
			int []t = getRange(s);
			for(int i_ = t[1];i_<=t[3];i_++){
				for(int j_ = t[2];j_<=t[4];j_++){
					ans += getValue(a,a[i_][j_]);
				}
			}
			int n = (t[4]-t[2]+1)*(t[3]-t[1]+1);
			ans /= n;
		}
		//求标准差
		else if(s.contains("T")){
			int []t = getRange(s);
			int n = (t[4]-t[2]+1)*(t[3]-t[1]+1);
			double avg = 0;
			for(int i_ = t[1];i_<=t[3];i_++){
				for(int j_ = t[2];j_<=t[4];j_++){
					avg  += getValue(a,a[i_][j_]);
				}
			}
			avg /= n;
			for(int i_ = t[1];i_<=t[3];i_++){
				for(int j_ = t[2];j_<=t[4];j_++){
					ans += (getValue(a,a[i_][j_]) - avg)*(getValue(a,a[i_][j_]) - avg);
				}
			}
			ans = Math.sqrt(ans/n);
		}
		else{
			ans = Double.parseDouble(s);
		}
		return ans;
	}
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		while(in.hasNext()){
			int n = in.nextInt(),m = in.nextInt();
			String [][]a = new String[n+1][m+1];
			for(int i = 1;i<=n;i++){
				for(int j = 1;j<=m;j++){
					a[i][j] = in.next();
				}
			}
			for(int i = 1;i<=n;i++){
				for(int j = 1;j<m;j++){
					System.out.printf("%.2f ",getValue(a,a[i][j]));
				}
				System.out.printf("%.2f%n",getValue(a,a[i][m]));
			}
		}
		in.close();
	}

}


 

0.0分

1 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区