小编Utk*_*sh5的帖子

替代c ++中的if语句

我正在研究一种算法,并希望使我的代码更有效.我的代码使用简单的算术和比较语句.但是,我想替换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;
    }
}
Run Code Online (Sandbox Code Playgroud)

我希望替换if检查,因为我认为'他们使算法变慢.任何建议?int_1024是一个带有1000位的ttmath变量,所以保存它可能是一个很好的选择?如此大的数字的除法或乘法可能慢,所以我尝试使用添加,但无济于事.请帮助.

c++ algorithm optimization

-2
推荐指数
2
解决办法
568
查看次数

标签 统计

algorithm ×1

c++ ×1

optimization ×1