zoukankan      html  css  js  c++  java
  • nyoj 66-分数拆分 (Java,暴力)

    66-分数拆分


    内存限制:64MB 时间限制:3000ms 特判: No
    通过数:7 提交数:9 难度:1

    题目描述:

    现在输入一个正整数k,找到所有的正整数x>=y,使得1/k=1/x+1/y.

    输入描述:

    第一行输入一个整数n,代表有n组测试数据。
    接下来n行每行输入一个正整数k

    输出描述:

    按顺序输出对应每行的k找到所有满足条件1/k=1/x+1/y的组合

    样例输入:

    2
    2 
    12

    样例输出:

    1/2=1/6+1/3
    1/2=1/4+1/4
    1/12=1/156+1/13
    1/12=1/84+1/14
    1/12=1/60+1/15
    1/12=1/48+1/16
    1/12=1/36+1/18
    1/12=1/30+1/20
    1/12=1/28+1/21
    1/12=1/24+1/24

    分析:
      1、暴力k+1到k+k之间的数据

    核心代码:
    1 for(int i = k + 1; i <= k + k; ++ i){
    2     int temp1 = i - k, temp2 = i * k, temp3;
    3     if (temp2 % temp1 == 0) {
    4         temp3 = temp2 / temp1;
    5         System.out.println("1/" + k + "=1/" + temp3 + "+1/" + i);
    6     }
    7 }

    Java代码实现(AC):

     1 import java.util.*;
     2 import java.io.*;
     3 import java.math.*;
     4 
     5 public class Main {
     6     public static void main(String args[]) {
     7         Scanner scan = new Scanner(System.in);
     8         int t = scan.nextInt();
     9         while (t > 0) {
    10             t--;
    11             int k = scan.nextInt();
    12             for(int i = k + 1; i <= k + k; ++ i) {
    13                 int temp1 = i-k, temp2 = k*i, temp3;
    14                 if (temp2 % temp1 == 0) {                    
    15                     temp3 = temp2 / temp1;
    16                     System.out.println("1/" + k + "=1/" + temp3 + "+1/" + i);
    17                 }
    18             }
    19         }
    20     }
    21 }
  • 相关阅读:
    Android Zygote介绍
    Android binder介绍(下)
    Android binder介绍(上)
    Android init介绍(下)
    Android init介绍(上)
    Android 网络服务介绍
    Linux代理服务器使用
    Linux ALSA介绍
    ZigBee MAC层(下)
    ZigBee MAC层(上)
  • 原文地址:https://www.cnblogs.com/GetcharZp/p/9110778.html
Copyright © 2011-2022 走看看