已改好 第一个是因为每次要算第i个的function值加到sum1才对
第二个也是循环每次加到sum2
import java.util.Scanner;
public class shiyan1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt();
System.out.println("n="+n);
int sum1=0;
int sum2=0;
int sum3=0;
long startTime1 = System.nanoTime();
for(int i=1;i<=n;i++) {
if(n==1) {
System.out.println("1");
break;
}
else {
sum1+=(int) faction(i);
}
}
long endTime1 =System.nanoTime();
long startTime2 = System.nanoTime();
if(n==1) {
sum2=1;
}
else {
for(int i=1;i<=n;i++)
sum2+=key(i);
}
long endTime2 = System.nanoTime();
long startTime3 = System.nanoTime();
sum3=n*(n+1)*(n+2)/6;
long ct1=System.nanoTime();
long endTime3 = System.nanoTime();
System.out.println("解法1的sum="+sum1+"运行耗时:"+(endTime1 - startTime1) + "ns");
System.out.println("解法2的sum="+sum2+"运行耗时:"+(endTime2 - startTime2) + "ns");
System.out.println("解法3的sum="+sum3+"运行耗时:"+(endTime3 - startTime3) + "ns");
}
public static int key(int n) {
return n*(n+1)/2;
}
public static long faction(int n) {
if(n==1)
return 1;
else
return n+faction(n-1);
}
}