zoukankan      html  css  js  c++  java
  • hdu 2669 Romantic 解题心得

    原题:

    Description


    Girls are clever and bright. In HDU every girl like math. Every girl like to solve math problem! 
    Now tell you two nonnegative integer a and b. Find the nonnegative integer X and integer Y to satisfy X*a + Y*b = 1. If no such answer print "sorry" instead. 
     

    Input

    The input contains multiple test cases. 
    Each case two nonnegative integer a,b (0<a, b<=2^31) 
     

    Output

    output nonnegative integer X and integer Y, if there are more answers than the X smaller one will be choosed. If no answer put "sorry" instead. 
     

    Sample Input

    77 51 10 44 34 79
     

    Sample Output

    2 -3 sorry 7 -3
     
    原题去掉了无用的图文。。。。
     
    分析:
    很直观的纯模板的扩展GCD,直接求a*x+b*y=1就可以了,注意数的大小超过int,用__int64
     
    代码:
    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    #include <math.h>
    __int64 exgcd(__int64 a,__int64 b,__int64 &x,__int64 &y)
    {
        if(b==0) {x=1;y=0;return a;}
        else
        {
            __int64 d=exgcd(b,a%b,x,y);
            __int64 t=x;
            x=y;
            y=t-a/b*y;
            return d;
        }
    }
    int main()
    {
        __int64 a,b,x,y;
        while(scanf("%I64d%I64d",&a,&b)!=EOF)
        {
            __int64 d=exgcd(a,b,x,y);
            if(1%d) puts("sorry");
            else
            {
                 while(x<0) x+=b,y-=a;
                 printf("%I64d %I64d
    ",x,y);
            }
        }
        return 0;
    }
     
     
     
     
  • 相关阅读:
    小程序 新建项目底部tabbar
    HBuild 连接安卓手机
    jquery tab切换
    VUE 项目运行
    VUE 创建element项目
    VUE环境搭建、创建项目、vue调试工具
    HBuild 连接苹果手机
    javascript五种基本类型
    SASS 简单实用
    redis基础02-redis的5种对象数据类型
  • 原文地址:https://www.cnblogs.com/shawn-ji/p/4748899.html
Copyright © 2011-2022 走看看