C语言典型例题二——杨辉三角

C语言典型例题二------杨辉三角

杨辉三角

1.杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。这就是我们用C语言写杨辉三角的关键之一。杨辉三角是一种数学工具,它是由一个数字三角形组成,其中第一行只有一个数字1,接下来的每一行都由前一行的相邻数字相加而来,最后一行为1 1,这种数字三角形以数学家杨辉的名字命名。杨辉三角具有很多有趣的数学特性,可以用于组合数学、概率论、数论等领域的计算和证明。

C语言中的位运算有哪些操作符

C语言中的位运算操作符包括:

  1. 按位与(&):两个位都是1,结果才为1,否则为0。
  2. 按位或(|):两个位中只要有一个为1,结果就为1,否则为0。
  3. 按位异或(^):两个位不相同,结果为1,否则为0。
  4. 按位取反(~):把操作数的每一位取反,即0变1,1变0。
  5. 左移(<<):将一个数的所有二进制位全部左移若干位,高位丢弃,低位补0。
  6. 右移(>>):将一个数的所有二进制位全部右移若干位,低位丢弃,高位补符号位或0。

在C语言中进行链表操作,需要先定义链表节点的结构体,即链表中每个节点的结构:

arduino 复制代码
struct ListNode {
    int val; // 节点存储的值
    struct ListNode *next; // 指向下一个节点的指针
};

然后,我们可以定义一个指向链表头节点的指针:

ini 复制代码
struct ListNode* head = NULL;

接下来,就可以进行链表的各种操作了,比如:

  1. 添加节点
ini 复制代码
struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
newNode->val = 1;
newNode->next = head;
head = newNode;
  1. 删除节点
ini 复制代码
struct ListNode* cur = head;
struct ListNode* pre = NULL;
while (cur != NULL && cur->val != x) {
    pre = cur;
    cur = cur->next;
}
if (cur != NULL) {
    if (pre == NULL) {
        head = cur->next;
    } else {
        pre->next = cur->next;
    }
    free(cur);
}
  1. 遍历链表
ini 复制代码
struct ListNode* cur = head;
while (cur != NULL) {
    // 处理当前节点
    cur = cur->next;
}
  1. 反转链表
ini 复制代码
struct ListNode* pre = NULL;
struct ListNode* cur = head;
while (cur != NULL) {
    struct ListNode* next = cur->next;
    cur->next = pre;
    pre = cur;
    cur = next;
}
head = pre;

这些操作只是链表操作的一部分,还有很多其他的操作,需要根据实际场景进行使用。在C语言中进行链表操作,需要先定义链表节点的结构体,即链表中每个节点的结构:

arduino 复制代码
struct ListNode {
    int val; // 节点存储的值
    struct ListNode *next; // 指向下一个节点的指针
};

然后,我们可以定义一个指向链表头节点的指针:

ini 复制代码
struct ListNode* head = NULL;

接下来,就可以进行链表的各种操作了,比如:

  1. 添加节点
ini 复制代码
struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
newNode->val = 1;
newNode->next = head;
head = newNode;
  1. 删除节点
ini 复制代码
struct ListNode* cur = head;
struct ListNode* pre = NULL;
while (cur != NULL && cur->val != x) {
    pre = cur;
    cur = cur->next;
}
if (cur != NULL) {
    if (pre == NULL) {
        head = cur->next;
    } else {
        pre->next = cur->next;
    }
    free(cur);
}
  1. 遍历链表
ini 复制代码
struct ListNode* cur = head;
while (cur != NULL) {
    // 处理当前节点
    cur = cur->next;
}
  1. 反转链表
ini 复制代码
struct ListNode* pre = NULL;
struct ListNode* cur = head;
while (cur != NULL) {
    struct ListNode* next = cur->next;
    cur->next = pre;
    pre = cur;
    cur = next;
}
head = pre;

这些操作只是链表操作的一部分,还有很多其他的操作,需要根据实际场景进行使用。在C语言中进行链表操作,需要先定义链表节点的结构体,即链表中每个节点的结构:

arduino 复制代码
struct ListNode {
    int val; // 节点存储的值
    struct ListNode *next; // 指向下一个节点的指针
};

然后,我们可以定义一个指向链表头节点的指针:

ini 复制代码
struct ListNode* head = NULL;

接下来,就可以进行链表的各种操作了,比如:

  1. 添加节点
ini 复制代码
struct ListNode* newNode = (struct ListNode*)malloc(sizeof(struct ListNode));
newNode->val = 1;
newNode->next = head;
head = newNode;
  1. 删除节点
ini 复制代码
struct ListNode* cur = head;
struct ListNode* pre = NULL;
while (cur != NULL && cur->val != x) {
    pre = cur;
    cur = cur->next;
}
if (cur != NULL) {
    if (pre == NULL) {
        head = cur->next;
    } else {
        pre->next = cur->next;
    }
    free(cur);
}
  1. 遍历链表
ini 复制代码
struct ListNode* cur = head;
while (cur != NULL) {
    // 处理当前节点
    cur = cur->next;
}
  1. 反转链表
ini 复制代码
struct ListNode* pre = NULL;
struct ListNode* cur = head;
while (cur != NULL) {
    struct ListNode* next = cur->next;
    cur->next = pre;
    pre = cur;
    cur = next;
}
head = pre;

这些操作只是链表操作的一部分,还有很多其他的操作,需要根据实际场景进行使用。

2.先定义一个二维数组:a[N][N],略大于要打印的行数。再令两边的数为 1,即当每行的第一个数和最后一个数为 1。a[i][0]=a[i][i-1]=1,n 为行数。除两边的数外,任何一个数为上两顶数之和,即 a[i][j] = a[i-1][j-1] + a[i-1][j]。最后输出杨辉三角。

3.代码如下:

4.运行结果

相关推荐
Ws_1 小时前
leetcode LCR 068 搜索插入位置
数据结构·python·算法·leetcode
lx学习2 小时前
Python学习26天
开发语言·python·学习
qq_273900232 小时前
pytorch register_buffer介绍
人工智能·pytorch·python
大今野3 小时前
python习题练习
开发语言·python
q567315233 小时前
用 PHP或Python加密字符串,用iOS解密
java·python·ios·缓存·php·命令模式
winfredzhang5 小时前
如何使用 python 中的 Pillow 创建可自定义的图标生成器
python·pillow·图标·png
qq_273900235 小时前
pytorch detach方法介绍
人工智能·pytorch·python
虞书欣的65 小时前
Python小游戏24——小恐龙躲避游戏
开发语言·python·游戏·小程序·pygame
FHYAAAX6 小时前
【机器学习】任务十:从函数分析到机器学习应用与BP神经网络
开发语言·python
PyAIGCMaster6 小时前
python环境中,敏感数据的存储与读取问题解决方案
服务器·前端·python