当前位置: 首页 > news >正文

考研C语言刷题基础篇之分支循环结构基础(二)

目录

第一题分数求和

 第二题:求10 个整数中最大值

第三题:在屏幕上输出9*9乘法口诀表

第四题:写一个代码:打印100~200之间的素数 

第五题:求斐波那契数的第N个数

斐波那契数的概念:前两个数相加等于第三个数

斐波那契数的公式:

第六题:汉诺塔游戏 

思路: 

1. 当n=1时,需要一步

2.当n=2时,需要三步 

3.当n=3时,需要七步

总结一下

公式结论

 第七题:青蛙跳台阶问题

 第八题数9的个数

第十题 猜数字游戏(复习版本)

第十一题 二分查找(复习版)


第一题分数求和

计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值,打印出结果

  1. 将这个试子分成两部分,第一部分为1/1+1/3+1/5+....+1/99;第二部分1/2+1/4+.....1/100
  2. 然后将这两个试子相减
  3. 注意这里分数是浮点型
  4. double型是长整型浮点型
//分数求和int main() {double sum = 0.0;double sub = 0.0;double acc = 0.0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += (1.0 / i);}else {sub += (1.0 / i);}}acc = sub - sum;printf("%lf", acc);

 第二题:求10 个整数中最大值

 

//求10 个整数中最大值int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };/*scanf("%d ", arr);*/int i = 0;int j = 0;for(int i = 0;i<10;i++){if (arr[i] >arr[i + 1]){j = arr[i];}else{j = arr[i+1];}}printf("%d", j);return 0;
}

第三题:在屏幕上输出9*9乘法口诀表

 两层循环第一层循环用来控制乘号左边,第二层循环用来控制乘号右边和每一层的个数

//在屏幕上输出9*9乘法口诀表int main() 
{for(int i=1;i<=9;i++){for(int j=1;j<=i;j++){printf("%d*%d=%d ", j, i, j*i);}printf("\n");}return 0;
}

第四题:写一个代码:打印100~200之间的素数 

第五题:求斐波那契数的第N个数

斐波那契数的概念:前两个数相加等于第三个数

1    1   2   3   5   8    13   21   34   55  

斐波那契数的公式:

当N<=2时   Fib(N)= 1;

当N>3时, Fib(N)=Fib(N-2)+Fib(N-1);2

//求斐波那契数列的第N个数int Fib(int n) {if (n <= 2) {return 1;}else {return Fib(n - 1) + Fib(n - 2);}}int main() {int n = 0;scanf("%d", &n);int sum = Fib(n);printf("第%d个数为:%d\n", n,sum);return 0;}

第六题:汉诺塔游戏 

思路: 

1. 当n=1时,需要一步

2.当n=2时,需要三步 

3.当n=3时,需要七步

 这里我们发现为了实现第四步,是完成了n=2的所有步骤3步。若将黑红当一个整体。

 那么我们要实现最后一步是不是也是完成相同的操作即n=2时的操作。

总结一下

首先,是完成一次n=2时的操作 即(n-1)时操作的操作。

在加上一步将蓝色放入第三根柱子的操作

最后,是将黑红当一个整体,在完成一次n=2即(n-1)时的操作。

公式结论

汉诺塔公式为:

当n=1时    要1步

当n>1时    要 2*(n-1)+1步

//汉诺塔游戏
int Hanoi(int n) {if (n == 1) {return 1;}else {return 1 + 2 * Hanoi(n - 1);}}int main() {int n = 0;scanf("%d", &n);int sum = Hanoi(n);printf("需要%d步", sum);return 0;}

 第七题:青蛙跳台阶问题

 问题:青蛙一次可以跳一个台阶,也可以一次跳2个台阶。请问如果有n个台阶时,青蛙有几种方法

台阶数第一次跳一格第一次跳两格方法数
111
21 122
3111;12213
41111;121;11222;2115
511111;1211;1121;1112;1222111;221;212;8
nn-1n-2(n-1)+(n-2)
//青蛙跳台游戏
int fac(int n) {if (n == 1) {return 1;}else if(n==2) {return 2;}else{return fac(n-1)+fac(n-2);}}int main() {int n = 0;scanf("%d", &n);int sum = fac(n);printf("需要%d步", sum);return 0;}

 第八题数9的个数

数100以内的出现过9的数字

//数9的个数
int main() {int n = 1;while (n <= 100) {if (n % 10 == 9) {printf("%d ", n);}else if(n / 10 == 9) {printf("%d ", n);}n++;}return 0;
}

第十题 猜数字游戏(复习版本)

 易错点:

1. srand((unsigned int)time(NULL));随机数种子,不能放在while循环里,要不然每次输入数字,都会生成随机的种子,会导致永远猜不对数字。

2.scanf("%d", &n);要放在循环里,要不然每次上一次猜对的数会一直在循环里循环。

//猜数字游戏
void menu() {printf("*******************\n");printf("*******0 结束******\n");printf("*******1 开始******\n");printf("*******************\n");printf("输入0/1\n");
}int fac(int n) {srand((unsigned int)time(NULL));int nnn = rand()%100+1;return nnn;}int main() {menu();int n = 0;int nn = 0;scanf("%d", &nn);srand((unsigned int)time(NULL));if (nn == 1) {int sum = fac(n);while (1) {printf("输入你猜的数字:");scanf("%d", &n);if (n < sum) {printf("猜小了\n");}else if (n > sum) {printf("猜大了\n");}else {printf("猜对了");break;}}}else {printf("结束游戏");}return 0;}

第十一题 二分查找(复习版)

编写代码在一个整形有序数组中查找具体的某个数

要求:找到了就打印数字所在的下标,找不到则输出:找不到。

#define _CRT_SECURE_NO_WARNINGS
#include<stdlib.h>
#include<stdio.h>
#include<string.h>//二分查找
int main()
{int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };int sum = sizeof(arr) / sizeof(arr[0]);printf("数组有%d个\n", sum);int left = 0;int right = sum - 1;int n = 0;printf("请输入你要查找的数:");scanf("%d", &n);while (n){int mid = (left + (right - left)) / 2;if (n < arr[mid]){right = mid - 1;}else if (n > arr[mid]){left = mid + 1;}else{printf("找到了下标为:%d", arr[n]);break;}}return 0;
}

相关文章:

考研C语言刷题基础篇之分支循环结构基础(二)

目录 第一题分数求和 第二题&#xff1a;求10 个整数中最大值 第三题&#xff1a;在屏幕上输出9*9乘法口诀表 第四题&#xff1a;写一个代码&#xff1a;打印100~200之间的素数 第五题&#xff1a;求斐波那契数的第N个数 斐波那契数的概念&#xff1a;前两个数相加等于第三…...

Scala基础知识

scala 1、scala简介 ​ scala是运行在JVM上的多范式编程语言&#xff0c;同时支持面向对象和面向函数式编程。 2、scala解释器 要启动scala解释器&#xff0c;只需要以下几步&#xff1a; 按住windows键 r输入scala即可 在scala命令提示窗口中执行:quit&#xff0c;即可退…...

数学建模-------误差来源以及误差分析

绝对误差&#xff1a;精确值-近似值&#xff1b; 举个例子&#xff1a;从A到B&#xff0c;应该有73千米&#xff0c;但是我们近似成了70千米&#xff1b;从C到D&#xff0c;应该是1373千米&#xff0c;我们近似成了1370千米&#xff0c;如果使用绝对误差&#xff0c;结果都是3…...

Arduino和MPLAB X 开发STM32F103和PIC16F15376

要点&#xff1a; 使用Arduino开发STM32F103&#xff08;Blue Pill&#xff09;&#xff0c;MPLAB X 开发PIC16F15376&#xff08;Curiosity Nano&#xff09;C/C嵌入式开发ESP32(Arduino、ESP-IDF)和STM32实时操作系统FreeRTOS STM32使用FreeRTOS示例 在使用 FreeRTOS 时&a…...

手机操作系统Android

▶1.Android系统概述 Andaid(读[安卓)由Coosle公司和开放手机联盟共同开发&#xff0c;它是基于Lmx内核的开源操作系统。Andtoid主要用于移动设备&#xff0c;如智能手机和平板计算机。2008年发布了第一部Andtoid智能手机&#xff0c;以后Android逐渐扩展到平板计算机、电视、…...

2024年,你是否还在迷茫?

2024年&#xff0c;你是否还在迷茫&#xff1f; 别担心&#xff01;鸿蒙来了&#xff0c;这个未来技术的制高点&#xff0c;为你提供了答案&#xff01; 诸多大厂疯抢、24年预计鸿蒙相关的岗位需求将达到百万级、就业均薪达到19K&#xff0c;全国高校开课…… 种种现象都在表…...

ART: Automatic multi-step reasoning and tool-use for large language models 导读

ART: Automatic multi-step reasoning and tool-use for large language models 本文介绍了一种名为“自动推理和工具使用&#xff08;ART&#xff09;”的新框架&#xff0c;用于解决大型语言模型&#xff08;LLM&#xff09;在处理复杂任务时需要手动编写程序的问题。该框架可…...

Github 2024-01-26 开源项目日报Top10

根据Github Trendings的统计&#xff0c;今日(2024-01-26统计)共有10个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Python项目4Jupyter Notebook项目2HTML项目1Shell项目1Dockerfile项目1非开发语言项目1Go项目1Rust项目1 高级…...

免费的 UI 设计资源网站 Top 8

今日与大家分享8个优秀的免费 UI 设计资源网站。这些网站的资源包括免费设计材料站、设计工具、字体和其他网站&#xff0c;尤其是一些材料站。它们是免费下载的&#xff0c;材料的风格目前很流行&#xff0c;适合不同的项目。非常适合平面设计WEB/UI设计师收藏&#xff0c;接下…...

人机协同对人工智能治理的影响

人机协同对人工智能治理的影响是多方面的。 首先&#xff0c;人机协同可以提供更有效的人工智能监管和治理机制。人工智能系统通常需要大量的数据来训练和运行&#xff0c;而人类在监管和治理方面有独特的能力。通过人机协同&#xff0c;人们可以利用他们的主观意见和专业知识来…...

Form.List的使用,设置某个字段的值

1.Form.Item的name <Form.Itemname{[base_range, company_base_range_start]}dependencies{[[base_range, company_base_range_end]]}rules{[{ required: true, message: 请输入下限 },{validator: (_, value) >validateMoneyRule(value,base_range?.company_base_range…...

React16源码: React中的updateHostComponent的源码实现

updateHostComponent 1 &#xff09;概述 在 completeWork 阶段的 HostComponent 处理&#xff0c;继续前文所述在更新的逻辑里面&#xff0c;调用了 updateHostComponent进行前后props对应的dom的attributes变化的对比情况这个方法也是根据不同环境来定义的&#xff0c;我们这…...

uniapp导入uView组件库

目录 准备工作 1. 新建一个项目 2. 导入uview组件库 3. 关于SCSS 配置步骤 1. 引入uView主JS库 2. 在引入uView的全局SCSS 3. 引入uView基础样式 4. 配置easycom组件模式 添加效果实验运行即可成功 准备工作 1. 新建一个项目 2. 导入uview组件库 在进行配置之前&#x…...

防御保护----防火墙的安全策略、NAT策略实验

实验拓扑&#xff1a; 实验要求&#xff1a; 1.生产区在工作时间&#xff08;9&#xff1a;00-18&#xff1a;00&#xff09;内可以访问DMZ区&#xff0c;仅可以访问http服务器&#xff1b; 2.办公区全天可以访问DMZ区&#xff0c;其中10.0.2.10可以访问FTP服务器和HTTP服务器…...

# 安徽锐锋科技IDMS系统简介

IDMS 由安徽锐锋科技独立开发 该系统负责和海算以及UE\UNITY的无缝衔接并具备远程数据库访问、高速数据库的自动创建及数据存储、支持MQTT等多种物联网接口&#xff0c;支持多种算法。主要完成由于物料、人员、生产、故障、不良异常、订单异常带来的生产损失&#xff0c;通过海…...

Notepad在文件中查找多行相同内容的文字

Notepad在文件中查找多行相同的内容 查找&#xff1a;打开 Notepad软件&#xff0c; Ctrl F 查找 。输入关键词&#xff0c; 点击【在当前文件中查找】。 复制&#xff1a;直接在下方的【搜索结果】复制。 Notepad提取含有特定字符串的行 详情见&#xff1a; https://blog…...

Python高超音速导弹

Python高超音速导弹的全自动化开发研发具有重要性的原因如下&#xff1a; 提高研发效率&#xff1a;全自动化开发可以通过自动化工具和流程&#xff0c;快速完成各种任务&#xff0c;包括代码编写、测试、集成和部署等。这样可以大大提高研发效率&#xff0c;缩短开发周期。 减…...

Java七大排序详解

排序 排序的概念 所谓排序 &#xff0c;就是让一串记录&#xff0c;按照其中某些或者某个关键字的大小&#xff0c;递增或递减的排列起来的操作。 稳定性&#xff1a;就比如在待排序的序列中&#xff0c;存在多个具有相同关键字的记录 &#xff0c;如果经过排序这些相同的关键…...

图像旋转角度计算并旋转

#!/usr/bin/python3 # -*- coding: utf-8 -*- import cv2 import numpy as np import timedef Rotate(img, angle0.0,fill0):"""旋转:param img:待旋转图像:param angle: 旋转角度:param fill&#xff1a;填充方式&#xff0c;默认0黑色填充:return: img: 旋转后…...

通过curl访问k8s集群获取证书或token的方式

K8S安全控制框架主要由下面3个阶段进行控制&#xff0c;每一个阶段都支持插件方式&#xff0c;通过API Server配置来启用插件。 1. Authentication&#xff08;认证&#xff09; 2. Authorization&#xff08;授权&#xff09; 3. Admission Control&#xff08;准入控制&#…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

Python实现prophet 理论及参数优化

文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候&#xff0c;写过一篇简单实现&#xff0c;后期随着对该模型的深入研究&#xff0c;本次记录涉及到prophet 的公式以及参数调优&#xff0c;从公式可以更直观…...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

MySQL 8.0 OCP 英文题库解析(十三)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

JVM 内存结构 详解

内存结构 运行时数据区&#xff1a; Java虚拟机在运行Java程序过程中管理的内存区域。 程序计数器&#xff1a; ​ 线程私有&#xff0c;程序控制流的指示器&#xff0c;分支、循环、跳转、异常处理、线程恢复等基础功能都依赖这个计数器完成。 ​ 每个线程都有一个程序计数…...

音视频——I2S 协议详解

I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议&#xff0c;专门用于在数字音频设备之间传输数字音频数据。它由飞利浦&#xff08;Philips&#xff09;公司开发&#xff0c;以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

GruntJS-前端自动化任务运行器从入门到实战

Grunt 完全指南&#xff1a;从入门到实战 一、Grunt 是什么&#xff1f; Grunt是一个基于 Node.js 的前端自动化任务运行器&#xff0c;主要用于自动化执行项目开发中重复性高的任务&#xff0c;例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

安卓基础(Java 和 Gradle 版本)

1. 设置项目的 JDK 版本 方法1&#xff1a;通过 Project Structure File → Project Structure... (或按 CtrlAltShiftS) 左侧选择 SDK Location 在 Gradle Settings 部分&#xff0c;设置 Gradle JDK 方法2&#xff1a;通过 Settings File → Settings... (或 CtrlAltS)…...