C++比例简化(我这

C++比例简化(我这,第1张

可以直接枚举分子分母。可以看出分子分母的枚举范围都是拦唯1到L,之后可以写一个最大公约数,判断分子分母的最大公约数是否为1(可以用辗转相除法,如代码中的橘老gcd()函数)。分子分母的比值要大于A和B的比值。根据交叉相乘法,就可以将这个式子写成:现分子×B≤现分母×A。到了最后一个条件了,使分子分母的比值要尽可能地接近A和B的比值,可以把所有符合上面两个条件的分子分母在一起比较,选出最优圆衡升解。

#include<stdio.h>

int gcd(int u,int v){

int r=1

while(v!=0){

r=u%v

u=v

v=r

}

return u

}

int main(void){

int A,B,L

scanf("%d",&A)

scanf("%d",&B)

scanf("%d",&L)

int num=gcd(A,B)

A/=num,

B/=num

int A1,B1

double num1=A*1.0/B,num2,num3=L*1.0

for(double i=1i<=Li+=1)

for(int j=1j<=Lj+=1)

if(gcd(i,j)==1){

num2=i/j

if(num2>=num1&&num2-num1<num3)

A1=i,

B1=j,

num3=num2-num1

}

printf("%d %d",A1,B1)

return 0

}

#include<stdio.h>int main(){double x,yprintf("请输入x的迅信世值坦衡:\n"亩肢)scanf("%lf",&x)y=2*xprintf("y的值是%lf\n",y)getch()return 0}

按照百分比的定义,要求a占b的百分比时,只需要a/b*100即可。

需要注意的是,百分比的结果为实数,需要用浮点数类型(float或double)来储册闭存,当 *** 作数a,b均为整型时州粗裂,需要先转为浮点型再进行 *** 作,否则会出错。

以输入两个整型数a,b,求a占b的百分比并输出为例,给出参考代码如下:

int a,b

float r

scanf("%d%d",&a,&b)//输入a和b。

r = (float)a/b*100//转为浮点数并计算百分比。

printf("a占b的百分比为%.2f%%\n", r)//输出结果,保留两位小数。需要凳纳注意的是,要输出%需要写成%%的形式。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12436889.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存