fork download
  1. import java.util.Scanner;
  2.  
  3. public class Main {
  4. public static void main(String[] args) {
  5. Scanner scanner = new Scanner(System.in);
  6. int n = scanner.nextInt();
  7. int[] dp = new int[n + 1];
  8.  
  9. // 初始化dp数组,最坏情况是全部由1组成,个数为n
  10. for (int i = 1; i <= n; i++) {
  11. dp[i] = i; // 初始化为最大值(全1)
  12. for (int j = 1; j * j <= i; j++) {
  13. dp[i] = Math.min(dp[i], dp[i - j * j] + 1);
  14. }
  15. }
  16.  
  17. System.out.println(dp[n]);
  18. scanner.close();
  19. }
  20. }
Success #stdin #stdout 0.14s 54704KB
stdin
9
stdout
1