s=1+(1+2)+(1+2+3)+……+(1+2+3+……+n)的值
要求:使用循环的嵌套完成,n要能任意输入。若累加和s的值小于等于500,则直接输出s的值;若s的值大于500,则要求在s刚刚大于500时就停止累加,并且输出此时的项数和s的值。
望采纳,采纳后源码发你额
给个例子参考:
import java.util.Scanner;
public class App {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
System.out.println("请输入正整数n:");
int n = scan.nextInt();
int s = 0;
for(int i=1;i<=n;i++){
for(int j=1;j<=i;j++){
s+=j;
if(s<500){
continue;
}else{
break;
}
}
if(s>=500){
System.out.println("s的值已经大于500,当前值是:"+s+", 当前循环到了第"+i+"项");
break;
}else if(i==n){
System.out.println("s的值是:"+s);
}
}
}
}
int n = 100;
BigDecimal s = BigDecimal.ZERO;
boolean flag = true;
int index = 0;
for (int i = 1; i <= n; i++) {
BigDecimal an = new BigDecimal((1 + i) * i).divide(new BigDecimal(2));
s = s.add(an);
if (s.compareTo(new BigDecimal("500")) == 1) {
flag = false;
index = i;
break;
}
}
if (flag) {
System.out.println("s:" + s.toPlainString());
} else {
System.out.println("项数:" + index + ",s:" + s.toPlainString());
}
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int[] dp = new int[n+1];
int sum = 0;
int i=1;
for(;i<=n;i++){
dp[i] = dp[i-1] + i;
sum += dp[i];
if(sum > 500){
i++;
break;
}
}
System.out.println(" 项数 = " + (i-1) + " , s的值 = "+sum);