为什么正序能过 倒序不能过
#include <cstdio>
#include <iostream>
#define S 32768
using namespace std;
int f[S+10][6];
int t,n;
int ans;
int main(){
cin>>t;
f[0][0]=1;
for(int i=1;i*i<=S;++i){
for(int j=i*i;j<=S;++j){
for(int k=1;k<=4;++k){
f[j][k]+=f[j-i*i][k-1];
}
}
}
while(t--){
cin>>n;
ans=0;
for(int i=1;i<=4;++i)ans+=f[n][i];
cout<<ans<<endl;
}
}