比例化简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
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。