求指点解决办法

求指点
include "stdio.h"
void main()
{
int i,n,a,b,c;
printf("Enter a positive integer end with -1: ");
scanf("%d",&n);
while(n!=-1)
{
a=1;
do
{
b=a;
c=0;
for(i=1;i<=n;i++)
{
c+=b;
b+=2;
}
if(c==n*n*n)
break;
else 
a+=2;
}while(1);
printf("%d*%d*%d=",n,n,n);
for(i=1;i<=n;i++)
{
printf("%d",a);
if(i!=n)
printf("+");
a+=2;
}
printf("\nEnter a positive integer end with -1:"); 
scanf("%d",&n);
}
}


哪位帅哥帮我解释一下以下这段代码的功能是什么,以及它是怎么执行的呢?
while(n!=-1)
{
a=1;
do
{
b=a;
c=0;
for(i=1;i<=n;i++)
{
c+=b;
b+=2;
}
if(c==n*n*n)
break;
else 
a+=2;
}while(1);


------解决方案--------------------
查找一个奇数,从这个奇数开始到第n个奇数为止的和等于n*n*n
------解决方案--------------------
C/C++ code
    while(n!=-1)//输入-1结束循环
    {
        a=1;
        do//从1开始查找符合的奇数
        {
            b=a;
            c=0;

------解决方案--------------------
C/C++ code
            for(i=1;i<=n;i++)//计算从当前奇数开始到n个奇数为止的总和
            {
                c+=b;
                b+=2;
            }
            if(c==n*n*n)//如果符合,则跳出
                break;
            else //否则查看下一个奇数 
                a+=2;
        }while(1);