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'。 –