我的c语言中为什么会超时?

来源:百度知道 编辑:UC知道 时间:2024/06/15 02:47:34
#include<stdio.h>
void judge(int m,int n)
{
int i,j,count=0;
for(i=1;i<=n;i++)
{
for(j=1;j<=n-i;j++)
if(i+j==n&&(i*2+j*4)==m)
{
printf("%d %d\n",i,j);
count++;
}
}
if(count==0)
printf("error\n");
}

void main()
{
int m,n;
scanf("%d %d",&n,&m);
while(n!=0&&m!=0)
{
judge(m,n);
scanf("%d %d",&n,&m);
}
}

程序运行时间与你的输入数值有关。
如果你输入
2 6
0 0
它就马上结束了。

做什么超时?

我运行是没问题, 就是没看明白 这个代码的作用

如果没弄错的话,应该是程序效率太低的缘故
#include<stdio.h>
void judge(int m,int n){
int i,j,count;
count=0;
for(i=1;i<=n;i++){
j=n-i;/*有i+j==n 这个判断的话 j的循环没意义*/
if( (i*2+j*4)==m ){
printf("%d %d\n",i,j);
count++;
}
}
if(count==0) printf("error\n");
}
main(){
int m,n;
while(scanf("%d %d",&m,&n) &&m &&n)
judge(m,n);
}
/*输入可以这样做,反正是判断零结束*/