标签:一个 输出 正整数 space pre class input turn namespace
描述
输入一个int范围内的正整数n,现在请你计算一下,n最少可以由多少个正整数的平方数累加得到,例如10=1^2+3^2(2个),16=4^2(1个)。
输入
输入一个正整数n。
输出
输出n最少可以由多少个正整数的平方数累加得到。
输入样例 1
10
输出样例 1
2
输入样例 2
16
输出样例 2
1
1 #include <bits/stdc++.h> 2 #define sd(a) scanf("%d",&a) 3 using namespace std; 4 int dp[40000]; 5 int main() 6 { 7 int n; 8 sd(n); 9 dp[0]=0; 10 for(int i=1;i<=n;i++) 11 { 12 dp[i]=dp[i-1]+1; 13 for(int j=2;j*j<=i;j++){ 14 dp[i]=min(dp[i],dp[i-j*j]+1); 15 } 16 17 } 18 cout<<dp[n]; 19 return 0; 20 }
标签:一个 输出 正整数 space pre class input turn namespace
原文地址:https://www.cnblogs.com/esther6/p/10713883.html