#yyds干货盘点# 动态规划专题:最少的完全平方数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了#yyds干货盘点# 动态规划专题:最少的完全平方数相关的知识,希望对你有一定的参考价值。
1.简述:
给定一个正整数n,请找出最少个数的完全平方数,使得这些完全平方数的和等于n。
完全平方指用一个整数乘以自己例如1*1,2*2,3*3等,依此类推。若一个数能表示成某个整数的平方的形式,则称这个数为完全平方数。例如:1,4,9,和16都是完全平方数,但是2,3,5,8,11等等不是
数据范围:
仅一行,输入一个正整数 n
按题目要求输出完全平方数之和为n的最少个数
输入:
5
输出:
2
1+4=5
输入:
8
输出:
2
4+4=8
输入:
9
输出:
1
3^2 = 9 \\ 32=9
2.代码实现:
import java.util.*;
public class Main
public static void main(String[] args)
Scanner reader = new Scanner(System.in);
int n = reader.nextInt();
// init
// dp[i] = dp[i - j * j] + 1
int[] dp = new int[n + 1];
Arrays.fill(dp, Integer.MAX_VALUE);
dp[0] = 0;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= i; j++)
if (j * j <= i)
dp[i] = Math.min(dp[i], dp[i - j * j] + 1);
// 恰好体积为n
System.out.println(dp[n]);
以上是关于#yyds干货盘点# 动态规划专题:最少的完全平方数的主要内容,如果未能解决你的问题,请参考以下文章