该如何修改代码?
#include
#define n 1000
int main()
{
int i,j,m=0,t,N;
scanf("%d",&N);
int a[n][n];
int b[n];
for(i=0;ifor(i=2;ifor(j=1;jfor(i=0;ifor(m=m+1,t=1;m<=t;m++,t=t+2)
{
for(j=0;j<=i;j++)
{
b[m]=a[i][j];
}
}
}
for(m=0;mif(N==b[m])
{
printf("%d",m);
break;
}
}
return 0;
}
#include<stdio.h>
#define n 700
int main()
{
int i,j, m=0, N;
scanf("%d",&N);
int a[n][n];
int b[n];
for(i=0;i<n;i++)
{
a[i][i]=a[i][0]=1;
}
for(i=2;i<n;i++)
{
for(j=1;j<i;j++)
{
a[i][j]=a[i-1][j]+a[i-1][j-1];
}
}
for(i=0;i<n;i++)
{
for(j=0;j<=i;j++)
{
b[m++]=a[i][j];
}
}
for(m=0; m<n; m++)
{
if(N==b[m])
{
printf("%d",m+1);
break;
}
}
return 0;
}
不用真的搞个二维数组,你定义成一维数组,然后每次在这个值的基础上迭代就行了
写代码就是尽量用最简单的办法把事情办成,写的越复杂越可能出错