数的平方和拆分

来源:互联网 发布:ff14猫男数据 编辑:程序博客网 时间:2024/05/21 10:05

关于将一个数拆成多个数平方和的形式,我们可以用搜索来做。

#include<cstdio>#include<cmath>int n,q;bool dfs(int k,int w,int v){    if(w==n)return 1;    if(w>n) return 0;    for(int j=k+1;j<=q;++j)    {        if(dfs(j,w+j*j,v+1))        {            if(v==0) printf("%d^2",j);            else printf("%d^2+",j);            return 1;        }    }    return 0;}int main(){    scanf("%d",&n);    q=sqrt(n);    printf("k(n)=");    if(!dfs(0,0,0))printf("-1");    return 0;}