求两个200行左右,计算量大的代码,就是比较耗时间。

MrBone 2009-05-09 10:49:00
如题,说的再具体点就是算法不需要太复杂,执行起来能超过1分钟。
...全文
530 36 打赏 收藏 转发到动态 举报
写回复
用AI写文章
36 条回复
切换为时间正序
请发表友善的回复…
发表回复
光宇广贞 2009-05-13
  • 打赏
  • 举报
回复
[Quote=引用 31 楼 fallening 的回复:]
C/C++ code#include <stdio.h>
#define iii\
( I ) if ( ii(I,6\
) )I [ strlen(I ) -1]=!1
int ii(ll,lll ) char*ll; {

char *l="\"; !l ? 1.1 : l; l,printf(";int l1=1-/*+&|"); &+|-*/1,li=!1;while

( lll>l1 ) …
[/Quote]
对得真齐……
diannaomingong 2009-05-13
  • 打赏
  • 举报
回复
写个遍历图n次的就好了
make026 2009-05-12
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hairetz 的回复:]
随便干什么都可以。
你能说下目的不?想死机可以给你个牛逼的。
[/Quote]

dead lock
lzpggg 2009-05-12
  • 打赏
  • 举报
回复

//环_境:VC6.0,Console Application
//原_理:π=2+1/3*(2+2/5*(2+3/7*(2+...
//特点:内嵌_汇编提速并扩大了计算范围
//限制:位数ws原则_上没有限制但因为本
//算法_的时间正比于ws的_平方所以将位_数
//控制在二、三十万以内较好。本人_曾用
//奔Ⅳ2.6GHz算20万位,耗时10分钟_左右
#include<stdio.h>
#include<stdlib.h>
#include<malloc.h>
#include<time.h>
long a=100000L;
void main()
{ FILE *fp;
long t1,t2;
char filename[40];
unsigned long c,d,e,i,j,ws;
unsigned long *f,*bb;
printf("位数=?");
scanf("%ld",&ws);
if(ws<1)return;
c=(ws+4)/05*17;
bb=f=(long*)malloc(04*c);
if(f==NULL)abort();
printf("将Pi存为: ");//提示输入数据文件名
scanf("%s",filename);//若打入NUL,则不_存盘
fp=fopen(filename,"w");
if(fp==NULL)abort();
t1=time(NULL);
for(i=0;i<c-1;i++,bb++)
*bb=a/5;*bb=a/5;//这里并_不错
for(e=0;c;c-=17,bb-=17,e=d%a)
{ static long group;
d=0;i=c;
j=c+c-1;
_asm mov eDI,bb
loopi:
_asm mov eax,[eDI]
_asm mul Dword ptr a
_asm mov ecx,edx
_asm mov ebx,eax
_asm mov eax,d
_asm mul dword ptr i
_asm add eax,ebx
_asm adc edx,ecx
_asm div dword ptr j
_asm mov d,eax
_asm mov [eDI],edx
_asm sub eDI,04
_asm dec dword ptr j
_asm dec dword ptr j
_asm dec dword ptr i
_asm jnz loopi
e += d/a;//这是为了避免重_复_计算
if(e>=100000)//这是一_种糟糕情况
abort();//希望它最_好不要发生
if(++group%200==0) //逢千_位_附近
printf( "%05lu\t",e);//显示五位
fprintf(fp,"%05lu",e);//写入_磁_盘
}
t2=time(NULL);
printf("%ld秒\n",t2-t1);
free(f);
fclose(fp);
}


ysysbaobei 2009-05-12
  • 打赏
  • 举报
回复
fallening 2009-05-11
  • 打赏
  • 举报
回复
#include      <stdio.h>
#define iii\
( I ) if ( ii(I,6\
) )I [ strlen(I ) -1]=!1
int ii(ll,lll ) char*ll; {

char *l="\"; !l ? 1.1 : l; l,printf(";int l1=1-/*+&|"); &+|-*/1,li=!1;while

( lll>l1 ) li|=! ( l[3*l1+++3
] -ll[strlen ( ll)-1] ) ;return
( li ) ;}main ( ll,lll
) char*lll[];{char l1 [ 111][21],li1[111][21 ] ,il1[111],i1l
[ 111 ] ;int lli,l11,l1l,li/* ( */,ll1,il,l;FILE*f;if(ll-2
) {f=fopen ( lll[1],"r" ) ;lli=l=ll1=il=!1;while
( fscanf(f,"%s",l1[lli] ) +1){li=ii ( l1[lli],3
) ;iii ( l1[lli] ) ;l1l=l11=!1;while
( l1l>-ll ) {iii ( lll[-l1l]
) ;strcasecmp ( lll[-l1l--],l1[lli] ) ||
( l11=++il ) ;}l11||lli++;if ( li
) {if ( ll1<il ) {ll1=il;l1l=l=lli;while
( l1l-- ) strcpy ( li1[l1l],l1[l1l]
) ;}il=lli=!1;}}if ( !ll1 ) puts
( " Beats me." ) ;else if ( !l
) puts ( " Yes." ) ;else{*li1[l1l=!1]=toupper
( *li1[!1] ) ;while ( l>l1l
) printf ( " %s",li1[l1l++] ) ;puts
( "." ) ;}}else{sprintf ( il1,"cat %s;echo",lll[1]
) ;system ( il1 ) ;}printf
( "\n? " ) ;gets ( il1
) ;sprintf ( i1l,"%s %s %s",lll[!1 ] ,lll[1],il1);system
( i1l); }

koulongfei 2009-05-11
  • 打赏
  • 举报
回复
gg gl
Swkjd 2009-05-11
  • 打赏
  • 举报
回复
写一个用线代方法对矩阵求逆的代码(复杂度O(n^4)),再输入个超大矩阵,200行内估计可以超过10min吧?
MrBone 2009-05-10
  • 打赏
  • 举报
回复
哪位仁兄有类似于圆周率π计算的程序么?
勤奋的沉沦 2009-05-09
  • 打赏
  • 举报
回复
long i = 0L;
while (i++ < 10000000000000L);
printf("%ld\n", i);

行不?
leechrockgames 2009-05-09
  • 打赏
  • 举报
回复


void main()
{
int delay=GetTickCount();//get time
double speed=30*3600;//frame*time
while(1)
{
int difftm = GetTickCount() - delay;
if(difftm < speed)
{
// ::Sleep(speed - difftm);//主动放弃CPU使用时间
}
else
{
break;
}
}

}
MrBone 2009-05-09
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 mengde007 的回复:]
死循环;然后一分钟后检测并退出;
[/Quote]
有具体的代码供小弟参考下么?
yeungqi 2009-05-09
  • 打赏
  • 举报
回复
up个~
mengde007 2009-05-09
  • 打赏
  • 举报
回复
死循环;然后一分钟后检测并退出;
MrBone 2009-05-09
  • 打赏
  • 举报
回复
各位实在是不好意思,我的表达能力实在是有限。
要求就是我需要一段大概200行左右的代码,代码内容随意,能让2.0的CPU执行时间超过1分钟,多了不限,但最好别无限,计算量大些,我已经找到了一个计算圆周率π的,圆周率的计算就完全符合我的所有要求。

感谢各位英雄!
光宇广贞 2009-05-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hairetz 的回复:]
随便干什么都可以。
你能说下目的不?想死机可以给你个牛逼的。
[/Quote]

不管楼主是否需要,我很期待大牛给出这个牛X的方法
  • 打赏
  • 举报
回复
随便干什么都可以。
你能说下目的不?想死机可以给你个牛逼的。
光宇广贞 2009-05-09
  • 打赏
  • 举报
回复
不明白到底要做何要求……

如果仅仅是为了暂停的话,用sleep就可以了…… 如果想死机的话 while(true);
lingyin55 2009-05-09
  • 打赏
  • 举报
回复
计算阶乘的,要程序耗时,除了看程序,和你的cpu也有关系啊。


#include<stdio.h>
int main()
{
int data[20000]={1,1,0}; //初始化,数组从1开始记数
int num; //阶乘大小
int digit=1; //每次阶乘得出结果的位数
scanf("%d",&num);
for(int i=1;i<=num;i++)
{
for(int j=1;j<=digit;j++)//先做每一位与i的乘积放在一个数组空间中
{
data[j]*=i;
}
for(int j=1;j<=digit;j++)//调整个元素的值,使之在0--9之间
{
if(data[j]>9)
{
for(int k=1;k<=digit;k++)
{
if(data[digit]>9) //位数增加
{
digit++;
}
data[k+1]+=data[k]/10;//调整
data[k]%=10;
}
}
}
}
printf("%d!=",num);
for(int j=digit;j>0;j--)
{
printf("%d",data[j]);
}
printf("\n");
return 0;
}

fengrx 2009-05-09
  • 打赏
  • 举报
回复
一楼方法很好啊。
你的最终需求是什么?好像没说出来。
加载更多回复(16)

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧