先找到杨辉三角的规律:任意左右相邻两数和等于两数之下的数(图片来自网络)
题中打印案例为直角三角形而非等腰三角形,可使用2x2数组来表示,最后不需要的值不打印即可
定义2x2数组,我们分两部分来定义,一部分为1,另一部分为其他数
找出1的索引特点,[ i ][ j ],当i=j或者列数 j 为 0 时,为1,所以:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n,i,j;
scanf("%d",&n);
int a[n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(i==j||j==0){
a[i][j]=1;
else{
a[i][j]=a[i-1][j]+a[i-1][j-1];
接着打印杨辉三角,直角形式,即2x2数组形式的杨辉三角特点:只有行数大于等于列数时有值
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(j<=i){ //条件:行数>=列数
printf("%d ",a[i][j]);
printf("\n"); //每行打印完成后换行
return 0;
最后每行打印完成加上换行即可
综上,代码为:
#include <stdio.h>
#include <stdlib.h>
int main() {
int n,i,j;
scanf("%d",&n);
int a[n][n];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(i==j||j==0){
a[i][j]=1;
else{
a[i][j]=a[i-1][j]+a[i-1][j-1];
for(i=0;i<n;i++){
for(j=0;j<n;j++){
if(j<=i){
printf("%d ",a[i][j]);
printf("\n");
return 0;
(代码,解法不唯一,仅供参考)
输入输入一个正整数n(0 < n <= 20)。输出输出杨辉三角形的前n行,相邻两项之间用一个空格隔开。输入示例7输出示例11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 11 6 15 20 15 6 1数据范围输入输出均为int范围的整数先找到杨辉三角的规律:任意左右相邻两数和等于两数之下的数(图片来自网络)题中打印案例为直角三角形而非等腰三角形,可使用2x2数组来表示,最后不需要的值不打印即可定义2x2
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
下面给出了杨辉三角形的前4行:
1 2 1
1 3 3 1
给出n,输出它的前n行。
输入包含一个数n。
输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一
个空格分隔。请不要在前面输出多余的空格。
样例输出
1 2 1
1 3 3 1
数据规模与约定
1 <= n
杨辉三角形
杨辉三角形是二项式系数在三角形中的一种几何排列,这一中国古代数学的杰出研究成果,通过将二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,将离散的数与形巧妙地结合起来。
9个杨辉三角的特点
这个程序首先会让用户输入要打印的行数,然后使用嵌套的for循环来计算并打印出杨辉三角形的每一行。在内部循环中,我们会计算每个位置的值。如果该位置在三角形的顶部或底部,其值为1,否则,我们会使用组合公式来计算其值。最后,我们打印出每行的所有值,并在行末添加一个换行符,使得输出更为易读。
杨辉三角形是一种极为有用的数学工具。它不仅可以帮助我们快速计算组合数、阶乘、对称等问题,还被广泛应用于物理、计算机图形学、音乐学等领域。通过深入学习和研究杨辉三角形的性质和应用,我们可以更好地理解和应用数学,同时也能够欣赏到数学的美和魅力。
1.输出所有的“水仙花数”,水仙花数是指一个三位数,这个数的各位数字的立方和就是该数本身。
2.将一个正整数分解质因数,如:18=2*3*3;
3.输入两个正整数,求这两个数的最大公约数和最小公倍数;
4.输入一行字符,统计其中英文字母,空格,数字和其他字符的个数;
5.一个整数加上100后是个完全平方数,加上168后也是一个完全平方数,求这个数;
6.输出9*9口诀;
7.两个乒乓球队比赛,各出三人,甲队抽签派出a,b,c三人,乙队派出x,y,z三人,已知a不和x比,c不和x,z比,编程求出对战情况;
8.打印出如下图形:
*****
*******
*****
9.给一个不多于五位的正整数,求它是几位数,并逆序输出它的各位数字;
10.请输入星期几的第一个字母来判断是星期几,如果一样,则判断第二个字母;
11.求一个3*3矩阵对角线元素之和;
12.有一个已经排好序的数组,先输入一个数,按原先的顺序插入其中;
13.取一个整数a从右端开始的4~7位;
14.打印出杨辉三角形前十行,如下:
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
......................
15.输入数组,最大的与第一个交换,最小的数与最后一个数交换,输出数组;
16.输入n个数,使其前m个数向后移动m个位置,最后面的m个数移到最前面;
17.有n个人围成一个圈子,从第一个人开始报数,报到3的退下,问最后留下的是编号为几的人;
18.字符串排序;
19.海滩上有一堆桃子,五只猴子来分,第一只猴子均分成5份,多出一个,扔进海里,自己拿走一份,第二三四五只猴子均这样做,问海滩上最初至少有多少个桃子;
20.求0~7所能组成的奇数的个数;
21.一个偶数总能表示成两个素数的和,输出所有可能的素数对;
22.两个字符串连接程序;
23.有5个同学,每个同学有三门课成绩,从键盘输入学号,姓名和三门课的成绩,取平均数,将数据存放在磁盘文件stud中;
24.如果一个数恰好等于它的因子之和,则叫“完数”求1000以内所有完数;
杨辉三角形
杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。
杨辉三角,是二项式系数在三角形中的一种几何排列。在欧洲,这个表叫做帕斯卡三角形。帕斯卡(1623----1662)是在1654年发现这一规律的,比杨辉要迟393年,比贾宪迟600年。杨辉三角是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合
for (i = 2; i < 6; i++) {
for (j = 1; j < i; j++) {
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j];
// 输出前6行6列的值
for (i = 0; i < 6; i++) {
for (j = 0; j <= i; j++) {
printf("%d", triangle[i][j]);
printf("\n");
return 0;