C++编程数字三角形
也可以用递归做111121133114641151010511615201561172135352171182856705628811936841261268436911...
也可以用递归做
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
最好用C++的
比如#include<iostream>
using namespace std;
谢谢啊 展开
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
最好用C++的
比如#include<iostream>
using namespace std;
谢谢啊 展开
5个回答
展开全部
我说楼主你还真懒啊,都不想动脑子的- -:
#include <iostream>
#include <iomanip>
using namespace std;
void Yang(int line);
void Line(void);
int main(int argc, char *argv[])
{
Yang(9);
system("PAUSE");
return EXIT_SUCCESS;
}
void Yang(int line)
{
int tri[line][line];
for (int i=0; i<line; i++)
{
for (int k=line-1; k>=i; k--)
{
cout << setw(3) << ' ';
}
for (int col=0; col<=i; col++)
{
if (0 == col || i == col)
{
tri[i][col] = 1;
}
else
{
tri[i][col] = tri[i-1][col-1] + tri[i-1][col];
}
cout << setw(3) << tri[i][col] << " ";
}
cout << endl;
}
}
#include <iostream>
#include <iomanip>
using namespace std;
void Yang(int line);
void Line(void);
int main(int argc, char *argv[])
{
Yang(9);
system("PAUSE");
return EXIT_SUCCESS;
}
void Yang(int line)
{
int tri[line][line];
for (int i=0; i<line; i++)
{
for (int k=line-1; k>=i; k--)
{
cout << setw(3) << ' ';
}
for (int col=0; col<=i; col++)
{
if (0 == col || i == col)
{
tri[i][col] = 1;
}
else
{
tri[i][col] = tri[i-1][col-1] + tri[i-1][col];
}
cout << setw(3) << tri[i][col] << " ";
}
cout << endl;
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include<iostream>
using namespace std;
int c(int x,int y) //递归求第x行第y列的值
{
int z;
if((y==0)||(y==x)) return 1; //如果y在第x行的第0或第x列,就输出1
z=c(x-1,y-1)+c(x-1,y);
return z;
}
void main()
{
int i,j,n=13;
cout<<"N=";
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<35-2.5*i;j++) cout<<" "; //美化
for(j=0;j<i+1;j++) printf("%5d",c(i,j));
cout<<"\n";
}
system("pause");
}
using namespace std;
int c(int x,int y) //递归求第x行第y列的值
{
int z;
if((y==0)||(y==x)) return 1; //如果y在第x行的第0或第x列,就输出1
z=c(x-1,y-1)+c(x-1,y);
return z;
}
void main()
{
int i,j,n=13;
cout<<"N=";
cin>>n;
for(i=0;i<n;i++)
{
for(j=0;j<35-2.5*i;j++) cout<<" "; //美化
for(j=0;j<i+1;j++) printf("%5d",c(i,j));
cout<<"\n";
}
system("pause");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include
using
namespace
std;
template<
int
i,
int
j
>
struct
c
{
static
const
int
r
=
c<
i
-
1,
j
-
1
>::r
+
c<
i
-
1,
j
>::r;
};
template<
int
i
>
struct
c
<
i,
i
>
{
static
const
int
r
=
1;
};
template<
int
i
>
struct
c
<
i,
0
>
{
static
const
int
r
=
1;
};
template>
struct
c
<
0,
0
>
{
static
const
int
r
=
1;
};
template<
int
i,
int
j
>
struct
l
{
l()
{
cout
<<
c<
i,
j
>::r
<<
"
";
l<
i,
j
-
1
>();
}
};
template<
int
i
>
struct
l<
i
,
0
>
{
l()
{
cout
<<
c<
i,
0
>::r
<<
endl;
}
};
template<
int
i
>
struct
y
{
y()
{
y<
i
-
1
>();
l<
i,
i
>();
}
};
template>
struct
y<
0
>
{
y()
{
l<
0,
0
>();
}
};
int
main()
{
y<
12
>();
return
0;
}
using
namespace
std;
template<
int
i,
int
j
>
struct
c
{
static
const
int
r
=
c<
i
-
1,
j
-
1
>::r
+
c<
i
-
1,
j
>::r;
};
template<
int
i
>
struct
c
<
i,
i
>
{
static
const
int
r
=
1;
};
template<
int
i
>
struct
c
<
i,
0
>
{
static
const
int
r
=
1;
};
template>
struct
c
<
0,
0
>
{
static
const
int
r
=
1;
};
template<
int
i,
int
j
>
struct
l
{
l()
{
cout
<<
c<
i,
j
>::r
<<
"
";
l<
i,
j
-
1
>();
}
};
template<
int
i
>
struct
l<
i
,
0
>
{
l()
{
cout
<<
c<
i,
0
>::r
<<
endl;
}
};
template<
int
i
>
struct
y
{
y()
{
y<
i
-
1
>();
l<
i,
i
>();
}
};
template>
struct
y<
0
>
{
y()
{
l<
0,
0
>();
}
};
int
main()
{
y<
12
>();
return
0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以建个数组a[n][m]=a[n-1][m-1]+a[n-1][m],(浪费内存,可以利用指针)
(多动脑才有提高)
或者直接写个函数 专门算a[i][j]
(多动脑才有提高)
或者直接写个函数 专门算a[i][j]
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#include <iostream>
using namespace std;
template< int I, int J > struct C { static const int r = C< I - 1, J - 1 >::r + C< I - 1, J >::r; };
template< int I > struct C < I, I > { static const int r = 1; };
template< int I > struct C < I, 0 > { static const int r = 1; };
template<> struct C < 0, 0 > { static const int r = 1; };
template< int I, int J > struct L { L() { cout << C< I, J >::r << " "; L< I, J - 1 >(); } };
template< int I > struct L< I , 0 > { L() { cout << C< I, 0 >::r << endl; } };
template< int I > struct Y { Y() { Y< I - 1 >(); L< I, I >(); } };
template<> struct Y< 0 > { Y() { L< 0, 0 >(); } };
int main() {
Y< 12 >();
return 0;
}
using namespace std;
template< int I, int J > struct C { static const int r = C< I - 1, J - 1 >::r + C< I - 1, J >::r; };
template< int I > struct C < I, I > { static const int r = 1; };
template< int I > struct C < I, 0 > { static const int r = 1; };
template<> struct C < 0, 0 > { static const int r = 1; };
template< int I, int J > struct L { L() { cout << C< I, J >::r << " "; L< I, J - 1 >(); } };
template< int I > struct L< I , 0 > { L() { cout << C< I, 0 >::r << endl; } };
template< int I > struct Y { Y() { Y< I - 1 >(); L< I, I >(); } };
template<> struct Y< 0 > { Y() { L< 0, 0 >(); } };
int main() {
Y< 12 >();
return 0;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询