蓝桥杯平方拆分问题
这里解题的思路就是DFS
public class lanqiao {
static int count;
static int ans=0;
static void dfs(int count,int n){//count临时容器存放n个数平方的相加和,n则是下一项的平方加数
if (count==2019){//if退出返回条件
ans++;
return ;
}
if (count>2019){//if退出返回条件
return;
}
else {
for (int i=n;i<50;i++){
count=count+i*i;
dfs(count,i+1);//递归
count=count-i*i;//回溯
}
}
}
public static void main(String[] args) {
dfs(0,0);
System.out.println(ans);
}
}
这道题主要在于0算不算是平方数之一
答案是:52574