zoukankan      html  css  js  c++  java
  • 华为机试-尼科彻斯定理

    题目描述
    验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
    例如:
    1^3=1
    2^3=3+5
    3^3=7+9+11
    4^3=13+15+17+19

    接口说明
    原型:

    /*
    功能: 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。
    原型:
    int GetSequeOddNum(int m,char * pcSequeOddNum);
    输入参数:
    int m:整数(取值范围:1~100)

    返回值:
    m个连续奇数(格式:“7+9+11”);
    */
    public String GetSequeOddNum(int m)
    {
    /*在这里实现功能*/
    return null;
    }


    输入描述:
    输入一个int整数
    输出描述:
    输出分解后的string
    示例1
    输入

    6
    输出

    31+33+35+37+39+41

    程序实现:

    1. import java.util.HashSet;  
    2. import java.util.Scanner;  
    3.   
    4. /** 
    5.  * 题目描述 验证尼科彻斯定理,即:任何一个整数m的立方都可以写成m个连续奇数之和。 例如: 1^3=1 2^3=3+5 3^3=7+9+11 
    6.  * 4^3=13+15+17+19 
    7.  *  
    8.  */  
    9.   
    10. public class Main {  
    11.     public static void main(String[] args) {  
    12.         @SuppressWarnings("resource")  
    13.         Scanner scanner = new Scanner(System.in);  
    14.         while (scanner.hasNext()) {  
    15.             int num = scanner.nextInt();  
    16.             String s = GetSequeOddNum(num);  
    17.             System.out.println(s);  
    18.         }  
    19.   
    20.     }  
    21.   
    22.     private static String GetSequeOddNum(int num) {  
    23.         HashSet<Integer> set = new HashSet<>();  
    24.         long sum = (long) Math.pow(num, 3);  
    25.         long mid = sum / num;  
    26.         long sum1 = 0;  
    27.         long start = 0;  
    28.         StringBuilder stringBuilder = new StringBuilder();  
    29.         if (num % 2 == 0) {  
    30.             // 偶数  
    31.             start = mid - 1 - (num - 2);  
    32.   
    33.         } else {  
    34.             // 奇数  
    35.             start = mid - (num - 1);  
    36.   
    37.         }  
    38.         sum1 += start;  
    39.         stringBuilder.append(start);  
    40.         for (int i = 2; i <= num; i++) {  
    41.             start += 2;  
    42.             sum1 += start;  
    43.             stringBuilder.append("+" + start);  
    44.   
    45.         }  
    46.         if (sum1 == sum) {  
    47.             return stringBuilder.toString();  
    48.         } else {  
    49.             return null;  
    50.         }  
    51.   
    52.     }  
    53. }  
  • 相关阅读:
    第四季-专题8-Linux系统调用
    第四季-专题7-Linux内核链表
    Python3 运算符
    Python2和Python3有什么区别?
    python常见的PEP8规范
    机器码和字节码
    域名是什么?为什么域名是www开头?
    selenium自动化登录qq邮箱
    xpath+selenium工具爬取腾讯招聘全球岗位需求
    ArrayList
  • 原文地址:https://www.cnblogs.com/wwjldm/p/7158689.html
Copyright © 2011-2022 走看看