首页 > 其他 > 详细

题目1336:液晶屏裁剪-----------注意辗转相除法,还要几点注意的地方

时间:2017-03-12 13:33:36      阅读:112      评论:0      收藏:0      [点我收藏+]

(1)辗转相除法必须得会;

(2)a1=a/x*x学会这种赋值手法;

(3)此题必须求取最大公约数,用x,y除以最大公约数的值进行计算;

(4)尤其是这道题的思路,必须弄清楚;

AC:

#include<stdio.h>
int com_div(int a,int b)//辗转相除法
{
        int r;
        while(b!=0)
        {
                r=a%b;
                a=b;
                b=r;
        }
        return a;
}
int main()
{
        int a,b,x,y,a1,b1,t,i;
        while(scanf("%d%d%d%d",&a,&b,&x,&y)!=EOF)
        {
                t=com_div(x,y);
                x=x/t;
                y=y/t;
                if(a<x||b<y)
                {
                        printf("0 0\n");
                        continue;
                }
                if(x>y)
                {
                        for(a1=a/x*x;a1/x*y>b;a1-=x);
                        b1=a1/x*y;
                }
                else
                {
                        for(b1=b/y*y;b1/y*x>a;b1-=y);
                        a1=b1/y*x;
                }
                printf("%d %d\n",a1,b1);
        }
        return 0;
}

 

题目1336:液晶屏裁剪-----------注意辗转相除法,还要几点注意的地方

原文:http://www.cnblogs.com/jianrenguo/p/6537256.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!