历届试题 连续奇数和

来源:互联网 发布:实时人口迁徙大数据 编辑:程序博客网 时间:2024/05/21 23:24

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

    比如: 

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*111using 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;}elsei++; }return 0;}


0 0
原创粉丝点击