硬做解不出来,但我看不懂为什么外层的for不循环。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int x;
scanf("%d",&x);
int ans,result;
ans=x*x*x;
printf("%d*%d*%d=%d=",x,x,x,ans);
int i,j,a[j],m,n,t;
t=1;
result=0;
if(x==1)//单独说
printf("%d",x);
if(x>1)
{for(t=1;t<=x*x*x;t=t+2)//找第一个
{//printf(" %d Y",t);
for(j=1;j<=x;j++)//找个数
{
a[0]=t;
a[j]=a[j-1]+2;
result=t+a[j];
//printf(" %d X",result);
if(result==ans && j==x)
{
m=a[j];//最后一个数
//printf(" %d ?",a[j]);
break;
}
}
if(result==ans && j==x)
{
break;
}
}
for(n=(x-1);n>0;n--)
{printf("%d+",(m-2*n));}
printf("%d\n",m);
}
return 0;
}
用等差数列求和做可以。
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int left,l,i=0,a[i];
scanf("%d",&l);
left=l*l*l;
printf("%d*%d*%d=%d=",l,l,l,left);
a[0]=(left-l*l+l)/l;
printf("%d",a[0]);
for(i=0;i<(l-1);i++)
{
a[i+1]=a[i]+2;
printf("+%d",a[i+1]);
}
return 0;
}
不过都用等差数列了,这还是计算机么?