Java求计算s=1+(1+2)+(1+2+3)+……+(1+2+3+……+n)的值

题目:s=1+(1+2)+(1+2+3)+……+(1+2+3+……+n)的值
要求: 使用循环的嵌套完成,n要能任意输入。若累加和s的值小于等于500,则直接输出s的值;若s的值大于500,则要求在s刚刚大于500时就停止累加,并且输出此时的项数和s的值。

代码如下,如有帮助请采纳!


public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入n:");
        int n = sc.nextInt();
        int s = 0;
        for (int i = 1; i <= n; i++) {
            for (int j = 1; j <= i; j++) {
                if (s > 500) {
                    break;
                }
                s += j;
            }
            if (s > 500) {
                System.out.println("项数:" + i + " 和:" + s);
                break;
            }
        }
        System.out.println(s);
    }


```java
private int sum(int n){
        int sum=0;
        for(int i=1;i<=n;i++){
            sum+=getCurrentSum(i);//统计到n时的总值
            if(sum>500){
                return sum;
            }
        }
        return sum;
    }
    private int getCurrentSum(int i){//累加小括号
        int sum=0;
        for(int j=1;j<=i;j++){
            sum+=j;
        }
        return sum;
    }

```


public static void main(String[] args) {
        BiFunction<Integer, Integer, Integer> biFunction = (s, i) -> s + i;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入n:");
        int n = sc.nextInt();
        int s = 0;
        int sum = 0;
        boolean flag = true;
        for (int i = 1; i <= n; i++) {
            s = biFunction.apply(s, i);
            sum += s;
            if (sum > 500) {
                System.out.println(sum + "----->" + i);
                flag = false;
                break;
            }
        }
        if (flag) {
            System.out.println(sum);
        }
    }