• UVA10673 Play with Floor and Ceil


    Problem A
    Play with Floor and Ceil
    Input: standard input
    Output: standard output
    Time Limit: 1 second
     

    Theorem

    For any two integers x and k there exists two more integers p and q such that:

                                                                                

    It’s a fairly easy task to prove this theorem, so we’d not ask you to do that. We’d ask for something even easier! Given the values of x and k, you’d only need to find integers p and q that satisfies the given equation.

     

    Input

    The first line of the input contains an integer, T (1≤T≤1000) that gives you the number of test cases. In each of the following T lines you’d be given two positive integers x and k. You can safely assume that x and k will always be less than 108.

    Output

    For each of the test cases print two integers: p and q in one line. These two integers are to be separated by a single space. If there are multiple pairs of p and q that satisfy the equation, any one would do. But to help uskeep our task simple, please make sure that the values,andfit in a 64 bit signed integer.

    Sample Input                              Output for Sample Input

    3

    5 2

    40 2

    24444 6

    1 1

    1 1

    0 6


    Problem setter: Monirul Hasan, Member of Elite Problemsetters' Panel

    Special Thanks: Shahriar Manzoor, Member of Elite Problemsetters' Panel

    题目大意:对于任意两个整数x,k,存在两个整数p和q满足:

                                                

    输入x,k,找出符合要求的整数p和q,如果有多组,输出任意一组即可。

    题解:赤果果的扩展欧几里得。。。。不过我提交几次都是WA,改成long就AC了,题目严重误导人啊!!!!坑死了。。。。

    View Code
     1 #include<stdio.h>
     2 #include<math.h>
     3 typedef struct
     4 {
     5     long d;
     6     long x;
     7     long y;
     8 }NODE;
     9 NODE gcd(long a,long b)
    10 {
    11     NODE s,p;
    12     if(!b)
    13     {
    14         s.x=1;
    15         s.y=0;
    16         s.d=a;
    17         return s;
    18     }
    19     s=gcd(b,a%b);
    20     p.x=s.x;
    21     s.x=s.y;
    22     s.y=p.x-(a/b)*s.y;
    23     return s;
    24 }
    25 int main(void)
    26 {
    27     long x,k,a,b;
    28     int t;
    29     NODE s;
    30     scanf("%d",&t);
    31     while(t--)
    32     {
    33         scanf("%ld%ld",&x,&k);
    34         a=floor((double)x/k);
    35         b=ceil((double)x/k);
    36         s=gcd(a,b);
    37         printf("%ld %ld\n",s.x*(x/s.d),s.y*(x/s.d));
    38 
    39     }
    40     return 0;
    41 }
  • 相关阅读:
    [转] Linux 最大进程数, unable to create new native thread问题
    [转] Maven 从命令行获取项目的版本号
    [转]【JVM】调优笔记2-----JVM在JDK1.8以后的新特性以及VisualVM的安装使用
    DISCUZ 自定义模板
    Linux系统性能统计工具Sar和实时系统性能监控脚本
    shell脚本常规技巧
    Java中文编码小结
    json-smart 使用示例(推荐fastjson)
    HBase Java简单示例
    Ehcache BigMemory: 摆脱GC困扰
  • 原文地址:https://www.cnblogs.com/zjbztianya/p/2957508.html
Copyright © 2020-2023  润新知