zoukankan      html  css  js  c++  java
  • HDU-2018中国大学生程序设计竞赛-网络选拔赛-1004-Find Integer

     

    Find Integer

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)
    Total Submission(s): 0    Accepted Submission(s): 0
    Special Judge


    Problem Description
    people in USSS love math very much, and there is a famous math problem .

    give you two integers n,a,you are required to find 2 integers b,c such that an+bn=cn.
     
    Input
    one line contains one integer T;(1T1000000)

    next T lines contains two integers n,a;(0n1000,000,000,3a40000)
     
    Output
    print two integers b,c if b,c exits;(1b,c1000,000,000);

    else print two integers -1 -1 instead.
     
    Sample Input
    1 2 3
     
    Sample Output
    4 5
     
    提示:此题运用了费马大定理,如果n>2,不可能出现b、c对应a实现a^n+b^n=c^n;
       如果n==2,则有当a为奇数时有规律,当a为偶数时有规律;
       如果n==1,情况更好判断。
     
    代码实现如下(g++):
    #include <iostream>
    #include <cstdio>
    #define ll long long int
    
    using namespace std;
    
    int main()
    {
        int t;
        ll z;
        ll n,a;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%lld %lld",&n,&a);
            if(n==1)
            {
                printf("1 %lld
    ",a+1);
            }
            else if(n==2)
            {
                z=a*a;
                if(a%2)
                {
                    printf("%lld %lld
    ",z/2,z/2+1);
                }
                else
                {
                    z = z/4;
                    printf("%lld %lld
    ",z-1,z+1);
                }
            }
            else
                printf("-1 -1
    ");
        }
        return 0;
    }
  • 相关阅读:
    《人月神话》阅读笔记02
    《人月神话》阅读笔记01
    第十四周学习进度条
    我们做的作品 请大家多多支持我们
    Beta阶段项目总结
    Alpha阶段项目总结
    Alpha版总结会议
    站立会议10(第二次冲刺)
    站立会议09(第二次冲刺)
    站立会议08(第二次冲刺)
  • 原文地址:https://www.cnblogs.com/jkxsz2333/p/9535161.html
Copyright © 2011-2022 走看看