zoukankan      html  css  js  c++  java
  • java实现第四届蓝桥杯连续奇数和

    连续奇数和 题目描述

    小明看到一本书上写着:任何数字的立方都可以表示为连续奇数的和。

    比如:

    2^3 = 8 = 3 + 5
    3^3 = 27 = 7 + 9 + 11
    4^3 = 64 = 1 + 3 + … + 15

    虽然他没有想出怎么证明,但他想通过计算机进行验证。

    请你帮助小明写出 111 的立方之连续奇数和表示法的起始数字。如果有多个表示方案,选择起始数字小的方案。

    请严格按照要求,通过浏览器提交答案。
    注意:只提交一个整数,不要写其它附加内容,比如:说明性的文字。

    public class Main {
     
    	public static void main(String[] args) {
    		int n = 111 * 111 * 111;
    		int sum = 0;
    		// 直接从1开始,枚举小于等于n的奇数相加
    		for (int i = 1; i <= n; i += 2) {
    			sum = 0;
    			for (int j = i; j <= n; j += 2) {
    				sum += j;
    				if (sum > n)
    					break;
    				if (sum == n) {
    					System.out.println(i);
    					System.exit(0);
    				}
    			}
    		}
    		
    		// 根据等差数列,an=2*n-1,Sn=n*n,根据这个来枚举
    		for (int i = 1; i < 3000; i++) {
    			for (int j = i; j < 3000; j++) {
    				if (j * j - (i - 1) * (i - 1) == n) {
    					System.out.println(2 * i - 1);
    					System.exit(0);
    				}
    			}
    		}
    	}
     
    }
    
  • 相关阅读:
    2021/1/10周总结一
    java基础复习五
    java基础复习四
    构建之法读书笔记三
    javaweb学生教务系统
    java基础复习三
    关于eclipse项目错误的一些小经验总结
    Java基础复习二
    JavaDoc文档
    2017-2018-2 20179216 《网络攻防与实践》 第四周总结
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12947459.html
Copyright © 2011-2022 走看看