- 题目:
小明看到一本书上写着:任何数字的立方都可以表示为连续奇数的和。
比如:
2^3 = 8 = 3 + 5
3^3 = 27 = 7 + 9 + 11
4^3 = 64 = 1 + 3 + ... + 15
[copy]
虽然他没有想出怎么证明,但他想通过计算机进行验证。
请你帮助小明写出 111 的立方之连续奇数和表示法的起始数字。如果有多个表示方案,选择起始数字小的方案。
- 代码实现:
点击查看代码
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int i,j,sum; //因为要输出起始数字,所以我们要有意识的保存好起始数字i,所以需要定义j来存放i变化的值
int n=pow(111,3);
for(i=1;;i+=2){ //奇数和,从1开始,每次加2,确保是连续的奇数
sum=0;
for(j=i;sum<n;j+=2){ //其实是暴力求解的,每次起始i一直连续加到超过n还不满足sum==n,则重新改变起始i,再来一遍。
sum += j;
if(sum==n){
printf("%d",i);
exit(0); //正确退出程序
}
}
}
return 0;
}