题解 | #尼科彻斯定理#

尼科彻斯定理

https://www.nowcoder.com/practice/dbace3a5b3c4480e86ee3277f3fe1e85

m^3是m个连续奇数,其中第一个奇数是上一组结果(m-1)^3的最后一个奇数+2,

则可以得到在此之前正奇数有f(m)=1+2+3+...+(m-1)=m(m-1)/2

那么依次轮询f(m)个奇数之后,下一个奇数就是正确的答案的第一个奇数,继续轮询m-1次就得到所有

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        //m的立方是m个连续奇数之和
        //每一组奇数的第一个是上一组奇数的最后一个奇数+2,是连续的奇数1 35 7911 ...
        int m = in.nextInt();
        //判断该数之前已经使用了多少正奇数1+2+3+....+(n-1)=n(n-1)/2
        int n = m * (m - 1) / 2;
        int count = 0;//记录轮询个数
        for (int i = 1;; i += 2) {
            count++;
            if (count > n) {//当轮询个数>上一组最后一个奇数 就开始输出
                System.out.print(i);
                if (--m>0)//需要输出m个数,m-1个+号
                    System.out.print("+");
                else
                    break;
            }
        }
    }
}

全部评论

相关推荐

02-24 17:39
门头沟学院 Java
神哥不得了:神哥来啦~专业技能的话建议不要前面空那么多,八股的话建议先把高频top 50的八股多巩固几遍,千万不要看那些假高频八股。项目的话,建议换两个高质量的项目上去
点赞 评论 收藏
分享
03-16 22:00
武汉大学 C++
幸福的小熊猫想要offer:我阿里投的 c++岗,面试官说自己是做 java 的,c++这辈子才有了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务