第二题:将公式转换成n/2a-a/2=x(1)。然后a从sqrt(n)开始递减。等式(1)成立时输出x。代码如下     public static void main(String[] args) {         // TODO Auto-generated method stub         Scanner complexScanIn = new Scanner(System.in);         int T=complexScanIn.nextInt();         if(T<=0||T>=1000) return;         long n=0;         for(int i=0;i<T;i++) {             n=complexScanIn.nextLong();             if(n<1L||n>1000000000L) return;                          //x<=n/2, x>1             double a =Math.sqrt(n);             double b = Math.floor(a);             int j=(int)b;             for(j=(int)b;j>0;j--) {                 double temp=n/(double)(2*j)-j/2.0;                 if(temp>0&&Math.floor(temp)==temp) {                     System.out.println((int)Math.floor(temp));                     break;                 }             }             if(j<=0)System.out.println(-1);                      }     }
点赞 评论

相关推荐

头像
10-30 23:47
已编辑
美团_前端开发(准入职员工)
美团 前端开发 总包34w 380股
点赞 评论 收藏
分享
牛客网
牛客企业服务