优化代码,不是从1每次经过for循环

我得到这个活儿,我想如果可能的话如何优化它的时候开始。优化代码,不是从1每次经过for循环

#include "stdio.h" 

#include "math.h"

int funk(n){

int a=1,b=1,j,i,flag=0;

for(a=1;a<n;a++){

for(b=1;b<n;b++){

if((pow(a,2)*b)-a+b+(a*pow(b,2))==n){

for(i=1;i<a;i++){

for(j=i;j<a;j++){

if(a%i==0 && a%j==0 && b%(i+j)==0){

printf("For n= %d equation has solutions %d and %d \n",n,a,b);

flag = 1;

}

}

}

}

}

}

if(flag==2){

printf("For n= %d equation has no solution \n",n);

}

return 0;

}

int main(){

int n,i;

printf("Input n ");

scanf("%d",&n);

for(i=1;i<n+1;i++){

funk(i);

}

return 0;

}

我在想for循环中funk()所以当我在main()进入n并呼吁funk()和例如n为10000执行时间很长,因为它从1开始,每尝试。

回答:

所以让这一切从头再来每次。你并不需要在主回路,您可以FUNC改变:

int funk(n){ 

int a=1,b=1,j,i,flag=0;

for(a=1;a<n;a++){

int n2= a;

for(b=1;b<n2;b++){

if((pow(a,2)*b)-a+b+(a*pow(b,2))==n2){

,并调用它像

funk(n+1); 

以上是 优化代码,不是从1每次经过for循环 的全部内容, 来源链接: utcz.com/qa/257559.html

回到顶部