回 帖 发 新 帖 刷新版面

主题:求助 我是新手求助java高手

我是新手,老师布置的几道作业,时间太紧。期待高手帮忙一下。。下不为例。。。谢谢了!
5252lwj@163.com

1.编写一个函数完成如下功能: Fn = 1 * 1! + 2* 2! + … + n  * n!;
计算Fn的值。

2、有一个湖泊,,为了测量湖泊的大小,将湖泊水面划分成100m*100m的小方格,水平方向15个方格,竖直方向20个方格,分别测得小方格的深度数据,见下表,其中深度为0表示是陆地。用二维数组存放之,请用面向对象的思想编程计算,编程计算湖水的体积和面积。(13分) 
0    0    1    1    1    1    0    0    0
0    0    2    3    2    2    2    1    0
1    2    3    4    5    6    5    3    0
1    3    6    7    8    11    9    3    1
1    4    12    12    13    14    8    3    1
1    2    6    11    14    15    12    8    1
1    3    8    12    10    13    11    3    1
1    3    9    11    11    6    5    3    1
0    3    7    8    7    6    7    3    1
0    0    3    2    3    4    2    1    0
0    0    0    1    1    1    1    0    0
[em10]

回复列表 (共3个回复)

沙发

第一题:1.编写一个函数完成如下功能: Fn = 1 * 1! + 2* 2! + … + n  * n!;
计算Fn的值。

import java.util.*;

public class Test1 {
    public static void main(String args[]) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入n的值:");
        int n = scanner.nextInt();
        System.out.println("f("+n+")="+f(n));
    }
    
    public static int t(int n) {
        if (n==1) {
            return 1;
        } else {
            return n*t(n-1);
        }
    }
    
    public static int f(int n) {
        int sum = 0;
        for (int i=1; i<=n; i++) {
            sum += i*t(i);
        }
        return sum;
    }
}

板凳

第二题:2、有一个湖泊,,为了测量湖泊的大小,将湖泊水面划分成100m*100m的小方格,水平方向15个方格,竖直方向20个方格,分别测得小方格的深度数据,见下表,其中深度为0表示是陆地。用二维数组存放之,请用面向对象的思想编程计算,编程计算湖水的体积和面积。(13分) 

public class Test2 {
    public static void main(String args[]) {
        Lake lake = new Lake();
        System.out.println("湖水的体积:"+lake.volume());
        System.out.println("湖水的面积:"+lake.area());
    }
}

class Lake {
    int a[][]= {{0,0,1,1,1,1,0,0,0},
                            {0,0,2,3,2,2,2,1,0},
                            {1,2,3,4,5,6,5,3,0},
                            {1,3,6,7,8,11,9,3,1},
                            {1,4,12,12,13,14,8,3,1},
                            {1,2,6,11,14,15,12,8,1},
                            {1,3,8,12,10,13,11,3,1},
                            {1,3,9,11,11,6,5,3,1},
                            {0,3,7,8,7,6,7,3,1},
                            {0,0,3,2,3,4,2,1,0},
                            {0,0,0,1,1,1,1,0,0}};
    public int volume() {
        int v = 0;
        for(int i=0; i<a.length; i++)
            for(int j=0; j<a[0].length; j++) {
                v += a[i][j];
            }
        return v;
    }
    
    public int area() {
        int c = 0;
        for(int i=0; i<a.length; i++)
            for(int j=0; j<a[0].length; j++) {
                if(a[i][j]==0) continue;
                c++;
            }
        return c;
    }
}

3 楼


非常感谢[em8]

我来回复

您尚未登录,请登录后再回复。点此登录或注册