为什么我的算法精确的很低,而且速度很慢!!各位大哥帮忙改改!!
using System;namespace pzi
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
class Class1
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>

const int MAX=1002;
static void Main(string[] args)
{
int[] x=new int[MAX];
int[] y=new int[MAX];
int i,j,k,con,flag;
con=1;
flag=1;
for(i=1;i<MAX;i++)
{
y[i]=0;
}
while(con<MAX)
{
j=4;
for(i=1;i<MAX;i++)
{
x[i]=j/(con*2-1);
k=j%(con*2-1);
j=k*10;
//Console.Write(x[i]);
}

if(flag>0)
{
for(i=MAX-1;i>0;i--)
{
y[i]=y[i]+x[i];
if(y[i]>10)
{
y[i]=y[i]%10;
y[i-1]++;
}

}
}
else
{
for(i=MAX-1;i>0;i--)
{
if(y[i]>x[i])
y[i]=y[i]-x[i];
else
{
y[i]=y[i]+10;
y[i]=y[i]-x[i];
y[i-1]--;
}
}
}
for(i=1;i<MAX;i++)
Console.Write(y[i]);
flag=-(flag);
con++;
Console.WriteLine();

}
Console.Read();
}
}
}

解决方案 »

  1.   

    看我加的注释,速度慢是因为C#写的东东,第一次运行是慢点,运行次数越多,会越来越快的,因为JIT在每次运行时都在不断的优化IL代码。
    using System;namespace pzi
    {
    /// <summary>
    /// Class1 的摘要说明。
    /// </summary>
    class Class1
    {
    /// <summary>
    /// 应用程序的主入口点。
    /// </summary>

    const int MAX=1002;
    static void Main(string[] args)
    {
    int[] x=new int[MAX];
    int[] y=new int[MAX];
    int i,j,k,con,flag;
    con=1;
    flag=1;
    for(i=1;i<MAX;i++)
    {
    y[i]=0;
    }
    while(con<MAX)
    {
    j=4;
    for(i=1;i<MAX;i++)
    {
    x[i]=j/(con*2-1);
    k=j%(con*2-1);
    j=k*10;
    //Console.Write(x[i]);
    }

    if(flag>0)
    {
    for(i=MAX-1;i>0;i--)
    {
    y[i]=y[i]+x[i];
    if(y[i]>10)
    {
    y[i]=y[i]%10;
    y[i-1]++;
    }

    }
    }
    else
    {
    for(i=MAX-1;i>0;i--)
    {
    if(y[i]>x[i])
    y[i]=y[i]-x[i];
    else
    {
    y[i]=y[i]+10;
    y[i]=y[i]-x[i];
    y[i-1]--;
    }
    }
    }
    for(i=1;i<MAX;i++)
    Console.Write(y[i]);
    flag=-(flag);
    con++;
    Console.WriteLine(); //这儿没参数啊?!

    }
    Console.Read();
    }
    }
    }