我正在研究一种算法,并希望使我的代码更高效。我的代码使用简单的算术和比较语句。但是,我想替换 if 语句,因为它们可能很耗时。这段代码将运行超过一百万次,因此,即使是最轻微的改进也是值得赞赏的。请回答!这是代码-
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 变量,所以保存它可能是一个不错的选择?这么大的数字可能会除法或乘法慢点,所以我尝试使用加法,但无济于事。请帮助。