个人想法是,通过for循环,将杨辉三角叠加遍历出来,个数,通过sum+j(算出遍历的几行的总数字再加上本行的第几列)
问题相关代码,请勿粘贴截图
#include<iostream>
#include<cstdio>
using namespace std;
int main()
{int a[10000][10000];
int i,j;
int N,sum=0;
int b[10000];
scanf("%d",&N);
for(i=0;i<100;i++)
{
b[i]=i+1;
}
a[0][0]=1;
a[1][0]=1;a[1][1]=1;
for(i=2;i<100;i++)
{
for(j=0;j<i+1;j++)
{
if(j==0) a[i][j]=1;
else if(j==i) a[i][j]=1;
else
{
a[i][j]=a[i-1][j-1]+a[i-1][j];
}
}
}
for(i=0;i<100;i++)
{
for(j=0;j<i+1;j++)
{
if(a[i][j]==N)
{
printf("%d",sum+j+1);
}
sum+=b[i];
}
}
return 0;
}
运行结果及报错内容
没有输入的画面,直接跳出程序,不知道是哪里出了问题,杨辉三角,单独测试过,是可以正常显示的