C代码:
main()
{
int c[]={1,0,0,0,0,0,0,0,0,0,0},a,n,sum;
for(a=1;a<=10;a++)
{
for(n=0;n<=a-1;n++)
printf("%-4d",c[n]);
printf("\n");
for(n=a;n>=1;n--)
c[n]=c[n]+c[n-1];
}
for(a=0;a<10;a++)
sum+=c[a];
printf("sum=%d",sum);
getch();
}
(用Win-TC编译)
思路:这种算法比较直接。用一个数组,初始化为1,0,0,0,0,0,0,0,0,0。每一次for循环,都会使每个数字等于其本身加上前一个数字,0号元素永远都是1,所以不用加。10次for循环后,再用一个for循环将十个数字加起来,就能得到结果了。
这个是程序设计问题吗?另外这个也不是杨辉三角吧!
是不是你把三角的数字打错了,如果没有打错,则第十行的数为:
10 20 30 40 50 60 70 80 90 100 90 80 70 60 50 40 30 20 10
总和应为1000
#include
using
namespace
std;
int
main()
{
int
i,j,
a,b,c[11]={0};
for
(i=1;i<=10;i++)
{
b=0;
for
(j=1;
j<=2*i-1;j++)
{
if
(j<=i)
{
a=i*j;
c[i]+=a;
cout<";
b=j;
}
else
{
b--;
a=i*b;
c[i]+=a;
cout<";
}
}
cout<
for
(i=1;i<=10;i++)
cout<<"第
"<行的和为
"<
0;
}
#include
using namespace std;
int main()
{
int i,j, a,b,c[11]={0};
for (i=1;i<=10;i++)
{
b=0;
for (j=1; j<=2*i-1;j++)
{
if (j<=i)
{
a=i*j;
c[i]+=a;
cout< b=j;
}
else
{
b--;
a=i*b;
c[i]+=a;
cout< }
}
cout<
for (i=1;i<=10;i++)
cout<<"第 "<
return 0;
}