比例化简C语言
2023-12-20 17:31:23
分析:由于我们输出的数字只能小于L,所以我们就枚举所以的可能,在对每一种可能相除,在和原始数据相处的值做差,插值越小说明符合程度越大,保留更新更小的差值,直到最后输出最小的情况。(具体看代码注释)。
#include <stdio.h>
int f(int a,int b){
if(b==0)return a;
else f(b,a%b);
}
int main(){
int n,m,j,i,k,a,b;
scanf("%d%d%d",&n,&m,&k);
float r=100;
for(i=1;i<=k;i++){
for(j=1;j<=k;j++){
float x1=n*1.0/m;
float x2=i*1.0/j;
if(f(i,j)==1&&x2>=x1&&x2-x1<r){
a=i;
b=j;
r=x2-x1;
}
}
}
printf("%d %d",a,b);
return 0;
}
文章来源:https://blog.csdn.net/2301_80207329/article/details/135112326
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!