Socki
2020-03-03 21:18
采纳率: 100%
浏览 194

已知一个浮点数A,求它由哪两个整数B/C相除的值最接近,有相同值时要求B最小,有木有什么思路?

已知一个浮点数A(0<A<5),求它由哪两个整数B/C相除的值最接近,有相同值时要求B最小

例如:
A=0.2
B=1 C=5

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • blownewbee 2020-03-03 22:08
    已采纳
    #include <stdio.h>
    #include <math.h>
    int main () {
    float A = 0.2f;
    int x = 0;
    if (A < 0) { x = 1; A = 1/A; }
    float delta = 1;
    int B = 1, C = 1;
    do
    {
    C = (int)(B * A);
    delta = fabs(C/(float)B-A);
    B++;
    }
    while (delta > 0.000001); //如果你要高精度,就改小,否则改大
    if (x == 0)
    printf("%d / %d", C, B - 1);
    else
    printf("%d / %d", B - 1, C);
    return 0;
    }
    
    

    问题解决请点采纳

    点赞 打赏 评论

相关推荐 更多相似问题