输入一个数,输出该数的立方以及该数立方分解为一连串连续奇数的和

3的立方27,27又分解为一连串连续奇数的和

img

你好同学:

#include <stdio.h>
int main(){
    int n;
    int s1, s2, i;
    scanf("%d",&n);
    s2 = n*(n+1)/2-1;
    s1 = s2 + 1 - n;
    printf("%d*%d*%d=",n,n,n);
    for(i=s1;i<s2;i++)printf("%d+",2*i+1);
    printf("%d",2*s2+1);
    return 0;
} 

img

int main()
{
      int n,m,i;
      scanf("%d",&n);
      m = n*n*n;
      printf("立方:%d\n",m);
      if(n%2==0)
      {
            printf("%d %d\n",m/2-1,m/2+1);
      }
      else
      {
            for(i=n-n/2;i<=n+n/2;i++)
                printf("%d ",i);
      }
      return 0;
}

如果n的立方是奇数,那么它除以2再+1得到的就是中位数
如果n的立方是偶数,那么它除以2之后,+1,-1分别是两个中位数
剩下的就是循环输出更大的和更小的数,直到所有数加起来等于n的立方