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

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

例三:猜凶手


题目具体要求如下


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. }

 

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

相关文章
|
前端开发 Java
|
JavaScript 前端开发
layui用layer.open打开子页面并获取子页面的ueditor富文本编辑器的内容
该内容描述了一个Web应用的交互流程,其中父页面通过调用子页面的JavaScript函数来获取富文本编辑器的内容。子页面包含一个富文本编辑器和一个`callbackdata`函数,用于返回编辑器的文本内容。父页面使用`layer.open`打开子页面作为弹窗,并在用户点击提交时,访问子页面的`callbackdata`获取编辑器内容,同时检查其他表单字段,如类型、标题等是否为空,以确保数据完整。
953 0
|
SQL 安全 JavaScript
基于JavaWeb的电影院在线选座订票管理系统
基于JavaWeb的电影院在线选座订票管理系统
889 0
基于JavaWeb的电影院在线选座订票管理系统
|
负载均衡 网络协议 微服务
服务注册:构建可伸缩性微服务架构的关键一环
在现代分布式应用程序中,微服务架构已经成为一种主流的开发方式。服务注册是构建可伸缩性微服务架构的关键组成部分之一。在本博客中,我们将深入探讨服务注册的概念、作用以及如何在微服务环境中有效地使用它。
|
Windows
【报错】在浏览器输入localhost为什么启动的是Microsoft的IIS windows首页?
【报错】在浏览器输入localhost为什么启动的是Microsoft的IIS windows首页?
196 0
|
11月前
|
Python
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
NumPy库中的`np.concatenate`和`np.append`函数,它们分别用于沿指定轴拼接多个数组以及在指定轴上追加数组元素。
494 0
Numpy学习笔记(五):np.concatenate函数和np.append函数用于数组拼接
|
8月前
|
缓存 JSON 数据格式
harbor2.0安装
harbor2.0安装过程和私有镜像上传
771 2
harbor2.0安装
|
11月前
|
Ubuntu jenkins 持续交付
Ubuntu系统 用docker安装jenkins
Ubuntu系统 用docker安装jenkins
uniapp 制作 wgt 包(用于 app 的热更新)
uniapp 制作 wgt 包(用于 app 的热更新)
1587 0
带你读《5G大规模天线增强技术》——2.4.5 穿透损耗计算
带你读《5G大规模天线增强技术》——2.4.5 穿透损耗计算