首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

有没有什么算法可以让这个程序运行的效率再高点?解决方法

2012-02-09 
有没有什么算法可以让这个程序运行的效率再高点?#includeiostream.hintmain(){inta[70000],b[40000],i0

有没有什么算法可以让这个程序运行的效率再高点?
#include   <iostream.h>

int   main()
{   int   a[70000],b[40000],i=0,x=0,y=0,p,c[100000],j=0,k=1;
        for(i=0;i <=70000;i++)
{x+=3;
a[i]=x;
if(x==210000)break;
}
for(i=0;i <=40000;i++)
{y+=5;
b[i]=y;
        if(y==200000)break;
}

while(k <=100000)
{       i=0,j=0,k=0;
        if(a[i] <=b[j])
        {
                c[k]=a[i];
                i++;
                k++;
        }
        else
        {
                c[k]=b[j];
                j++;
                k++;
        }
}


cin> > p;
cout < <c[p-1] < <endl;
       


 
return   0;


}
就这个程序,现在运行的太慢了,可能是循环次数多了.
有没有更好的算法?

[解决办法]
你的这个贴子里我已经给了解答:
http://community.csdn.net/Expert/TopicView3.asp?id=5451832

int n35(int n)
{
assert( 1 <= n && n <= 100000 );
static int d[] = {0, 3, 5, 6, 9, 10, 12};
return n/7*15 + d[n%7];
}

返回第nth个数。

热点排行