搜索:堆积木,我的数据不知道为什么输相同数有时是对的有时是错的,求大佬帮看看哪里有问题,谢谢你

问题 A: 基本算法4.1堆积木
时间限制: 1 Sec 内存限制: 128 MB
提交: 85 解决: 71
[提交] [状态] [讨论版] [命题人:admin]
题目描述
小明的侄子要过生日了,小明买了一套儿童积木送他。这套积木由N个边长为1厘米的正方体小块组成,小明想把这些小块堆成一个大的矩形方体,然后将整个方体包裹上漂亮的包装纸,请问小明最少需要多少平方厘米的包装纸即可?

输入
输入的第一行为一个正整数C,表示测试样例的组数。
每组输入是一个正整数N(1<=N<=1000),表示积木块的个数。

输出
对于每组输入,输出将整个方体完全包裹上包装纸所需要的包装纸的最小面积。

样例输入
5
9
10
26
27
100

样例输出
30
34
82
54
130

#include<bits/stdc++.h>
using namespace std;
int minx;
int v[1010][1010];
int s(int x,int y,int z)
{
    int ss;
    ss=2*z*(x+y)+2*x*y;
    return ss;
}
int main()
{
    int N,n; 
    cin>>N;
    while(N--)
    {
        cin>>n;
        minx=s(1,1,n);
        for(int i=1;i<=n;i++)
        {
            if(n%i==0)
            {
                for(int j=1;j<=n/i;j++)
                if((n/i%j)==0&&v[i][j]==0)
                {   v[i][j]=1;
                    v[j][i]=1;
                    int k=n/i/j;
                    minx=min(s(i,j,k),minx);
                }
            }
        }
        cout<<minx<<endl;
    }
    return 0;
}

二维数组v没有初始化
cin >> n;后加一句

memset(v, 0, sizeof(v));