历届试题 连续奇数和

    xiaoxiao2021-03-25  140

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

        比如: 

    2^3 = 8 = 3 + 5

    3^3 = 27 = 7 + 9 + 11

    4^3 = 64 = 1 + 3 + ... + 15   1 3 5 7 9 11 13 15     31 33

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

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

    思路:

    列出111立方内的奇数,在求连续的和是否等于111的立方

    代码:

    #include<iostream> #include<algorithm> #include<cstdio> #define S 111*111*111 using namespace std; int a[S]; void js() //求出奇数 { int i,k=0; for (i=1;i<=S/2+10;i++) { if (i%2 == 1) { a[k++] = i; } } } int main() { int sum = 0,i,j,k=1; js(); for (i=0; i<=S/2+10;) { sum += a[i]; if (sum > S) { i=k++; //大于S,又从上一次起始位置的后一个开始累加 sum = 0; } else if (sum == S) { cout<<a[k-1]; break; } else i++; } return 0; }

    转载请注明原文地址: https://ju.6miu.com/read-9351.html

    最新回复(0)