题目: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);
}
}