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);
    				}
    			}
    		}
    	}
     
    }
    
  • 相关阅读:
    231. Power of Two
    204. Count Primes
    205. Isomorphic Strings
    203. Remove Linked List Elements
    179. Largest Number
    922. Sort Array By Parity II
    350. Intersection of Two Arrays II
    242. Valid Anagram
    164. Maximum Gap
    147. Insertion Sort List
  • 原文地址:https://www.cnblogs.com/a1439775520/p/13077228.html
Copyright © 2011-2022 走看看