私はアルゴリズムに取り組んでおり、コードをより効率的にしたいと考えています.私のコードは単純な算術演算と比較ステートメントを使用しています.ただし、時間がかかる可能性があるため、ifステートメントを置き換えたいと考えています.このコードは100万回以上実行されます.わずかな改善でも大歓迎です。答えてください!コードは次のとおりです-
int_1024 sqcalc(int_1024 s,int_1024 f){
f=f*20;
s=s-81;
s=s-(f*9);
if(s>=0){
return 9;
}
s=s+f;
s=s+17;
if(s>=0){
return 8;
}
s=s+f;
s=s+15;
if(s>=0){
return 7;
}
s=s+f;
s=s+13;
if(s>=0){
return 6;
}
s=s+f;
s=s+11;
if(s>=0){
return 5;
}
s=s+f;
s=s+9;
if(s>=0){
return 4;
}
s=s+f;
s=s+7;
if(s>=0){
return 3;
}
s=s+f;
s=s+5;
if(s>=0){
return 2;
}
s=s+f;
s=s+3;
if(s>=0){
return 1;
}
s=s+f;
s=s+1;
if(s>=0){
return 0;
}
}
if チェックを置き換えたいのは、アルゴリズムが遅くなると「思う」からです。何か提案はありますか?int_1024 は 1000 のビットを持つ ttmath 変数なので、それを節約することは良いオプションかもしれません?そのような大きな数の除算または乗算は遅いので足し算でやってみましたがだめでした。助けてください。