0
我得到这个活儿,我想如果可能的话如何优化它的时候开始。优化代码,不是从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开始,每尝试。
第1步:了解它做什么。 –
你想要的是,对于程序的不同执行,n应该从不同的数字开始,因为它已经计算了以前的输入值? –
'int funk(n){}'n是什么?假设这是一个错字,应该是'INT芬克(INT N)'这是矫枉过正使用'pow'计算平方,你最终比较'和'int' double'。 –