gpt4 book ai didi

c++ - 当 dif==0 时该过程将停止,但当 dif==-0.000000 时它不会停止

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:04:40 25 4
gpt4 key购买 nike

<分区>

我正在尝试编写一个程序,将分数 m/n 写为不同埃及分数 (EF) 的总和,其中 EF 的数量最少。

这是我的完整代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
float a,b,sum=0,sct[100000];
float arr=1;
int stt=0;
cin>>a>>b;
while(sum!=a/b){
sum=sum+(1/arr);
float dif=a/b-sum;
printf("%f - sum = %f - dif = %f\n",arr,sum,dif);
if(dif>=0){
sct[stt]=arr;
cout<<"1/"<<arr<<"\n";
stt++;
} else {
sum=sum-(1/arr);
}
arr++;
}
cout<<stt<<"\n";
for(int m=0;m<stt;m++) cout<<sct[m]<<" ";
}

你可以很好地看到,如果 dif==0 那么进程将结束。但是当 arr==3 时,我得到了 dif==-0.000000 但是这个过程并没有结束!

输出说明:

我试图修复它,但我所有的努力都是无用的。您知道我应该在我的代码中更改什么吗?

任何帮助将不胜感激!

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com