//4^3 = 64 = 1 + 3 + ... + 15
//写出 111 的立方之连续奇数和表示法的起始数字。如果有多个表示方案,选择起始数字小的方案.
//S = a + ... = na + n(n-1)d/2 = n(n+a-1)注意n+a-1>=a,想要a取得最小值,则n尽可能大同时验证a为奇数
#include <stdio.h> #define eps 1e-7 #include <math.h> int main() { int n = (int)sqrt(pow(111,3)); for(;n>=1;n--) { if(pow(111,3)/n - (int)(pow(111,3)/n) < eps && ((int)(pow(111,3)/n)+1-n)%2)//整数及首项为奇数 { printf("%d ",(int)(pow(111,3)/n) + 1 - n); break; } } return 0; }