算法岗位: 第一题:通过率为70%,时间复杂度不够,求赐教~~~ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); long n = in.nextLong(); System.out.println(solution(n)); in.close(); } public static long solution(long n){ if(n == 0){ return 0; } long result = 1; while(true){ ++result; if(n>(result*(result+1)/2) && n<(result+1)*(result+2)/2){ break; } } return result+1; } } 第二题目:(不知道能不能通过,因为我没时间了,哎~~~,我感觉即使能过,时间复杂度也过不了) import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner in = new Scanner(System.in); long n = in.nextLong(); System.out.println(solution(n)); in.close(); } public static long solution(long n){ if(n == 0){ return 0; } long result = 0; long m = 10000000007L; result+= Math.pow(n, n) + (n-1)*n; for(int a = 2;a<=n;a++){ for(int b = 2;a<=n;a++){ for(int c = 2;a<=n;a++){ for(int d = 2;a<=n;a++){ if(a!=b && c!=d && a!=c){ if(Math.pow(a, b) == Math.pow(c,d)){ result ++; } } } } } } return result%m; } }