倒置字符串、猜名次、猜凶手、杨辉三角(下)

简介: 倒置字符串、猜名次、猜凶手、杨辉三角(下)

例三:猜凶手


题目具体要求如下


481ffb4e34604a85bbe6a1e948be6b1d.png


本题代码简单,但是呢思维巧妙,相信各位宝子看完代码就可以理解了


1. #include<stdio.h>
2. int main()
3. {
4.    int killer = 0;
5. //分别假设凶手是a,b,c,d,看谁是凶手时满足3个人说了真话,一个人说了假话
6. for (killer = 'a'; killer <= 'd'; killer++)
7.    {
8. if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
9.      printf("凶手是:%c", killer);
10.    }//只需要一个个遍历,满足这四个人中三个人的条件即可判断出来
11. return 0;
12. }


例四:杨辉三角


题目要求为


ae08550c6253425d8bb0110e538372c8.png


题目要求了解呢后,我们来了解一下什么叫杨辉三角吧

杨辉三角(也称帕斯卡三角)相信很多人都不陌生,它是一个无限对称的数字金字塔,从顶部的单个1开始,下面一行中的每个数字都是上面两个数字的和。

杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623—-1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。


方法一


其实这道题主要是找到规律就好做了,一起来看看博主的代码吧


1. #include <stdio.h>
2. int main()
3. {
4.  int n = 0;
5.  int i = 0;
6.  int arr[1000] = { 0 };
7.  scanf("%d", &n);
8.  for (i = 1; i < n; i++)
9.  {
10.     arr[0] = 1;
11.     int j = i-1;
12.     int x = 0;
13.     for (; j >0; j--)
14.     {
15.       arr[j] = arr[j - 1] + arr[j];
16.     }
17.     for (x = 0; x <i; x++)
18.     {
19.       printf("%d ", arr[x]);
20.     }
21.     printf("\n");
22.   }
23.   return 0;
24. }

画图解释如下


4a71d235a00c4efc9a317e8144afc3b1.png


方法二

 

1. void yangHuiTriangle(int n)
2. {
3.  int data[30][30] = { 1 }; //第一行直接填好,播下种子
4. 
5.  int i, j;
6. 
7.  for (i = 1; i < n; i++) //从第二行开始填
8.  {
9.    data[i][0] = 1; //每行的第一列都没有区别,直接给1,保证不会越界。
10.     for (j = 1; j <= i; j++) //从第二列开始填
11.     {
12.       data[i][j] = data[i - 1][j] + data[i - 1][j - 1]; //递推方程
13.     }
14.   }
15. 
16.   for (i = 0; i < n; i++) //填完打印
17.   {
18.     for (j = 0; j <= i; j++)
19.     {
20.       printf("%d ", data[i][j]);
21.     }
22.     putchar('\n');
23.   }
24. }

 

以上是博主在学习中遇到的难题,在此分享做题经验,对于这些题目有其他见解的友友,欢迎评论去留言探讨。

相关文章
|
4天前
leetcode:374. 猜数字大小(二分查找)
leetcode:374. 猜数字大小(二分查找)
18 0
|
7月前
【Leetcode -367.有效的完全平方数 -374.猜数字大小】
【Leetcode -367.有效的完全平方数 -374.猜数字大小】
23 0
|
4天前
|
C++
【PTA】L1-056 猜数字 (C++)
【PTA】L1-056 猜数字 (C++)
48 0
【PTA】L1-056 猜数字 (C++)
|
9月前
|
C语言
用C语言解决实际问题之买汽水、猜凶手(名次)
用C语言解决实际问题之买汽水、猜凶手(名次)
53 0
|
10月前
|
C语言
【C语言】【典例详解】【刷题】猜名次&&猜凶手【循环练习】
【C语言】【典例详解】【刷题】猜名次&&猜凶手【循环练习】
129 0
|
4天前
|
存储 算法 Java
小白刷力扣之整数反转与回文数
小白刷力扣之整数反转与回文数
|
6月前
|
存储 算法 C语言
【C语言刷题】猜名次、猜凶手、杨辉三角、杨氏矩阵、字符串左旋、判断是否为左旋子串
【C语言刷题】猜名次、猜凶手、杨辉三角、杨氏矩阵、字符串左旋、判断是否为左旋子串
53 0
|
9月前
|
人工智能
找凶手,排名次,杨辉三角打印
找凶手,排名次,杨辉三角打印
|
10月前
倒置字符串、猜名次、猜凶手、杨辉三角(上)
倒置字符串、猜名次、猜凶手、杨辉三角(上)
|
9月前
|
存储 C语言
你也能做的简单版猜数字游戏(和优化版猜数字)
你也能做的简单版猜数字游戏(和优化版猜数字)