假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?实现 int sqrt(int x) 函数。

2023-11-17

今天我们来爬一爬楼梯。
假设你正在爬楼梯。需要 n 阶你才能到达楼顶。

每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?

注意:给定 n 是一个正整数。

示例 1:

输入: 2
输出: 2
解释: 有两种方法可以爬到楼顶。

  1. 1 阶 + 1 阶
  2. 2 阶
    示例 2:

输入: 3
输出: 3
解释: 有三种方法可以爬到楼顶。
3. 1 阶 + 1 阶 + 1 阶
4. 1 阶 + 2 阶
5. 2 阶 + 1 阶
其实多数几组你就会发现规律
一阶楼梯:1种方法
两阶楼梯:2种方法
三阶楼梯:3种方法
四阶楼梯:5种方法
五阶楼梯:8种方法
六阶楼梯:13种方法
朋友们应该看出来了有规律了 这不就是斐波那契数列么,只不过缺少第一项而已。(斐波那契数列我在前面的博客中写过,大家可以去看下。)
好。那接下来就可以写代码了

#define _CRT_SECURE_NO_WARNINGS 
#include <stdio.h>
#include <stdlib.h>
int climbStairs(int n) {

	int num1 = 1;
	int num2 = 2;
	int tep = 0;
	if (n <= 2)
	{
		return n;
	}
	else
	{
		for (int i = 2; i < n; i++)//从第三项开始, 第i项等于第i-1项加第i-2项
		{
			tep = num1 + num2;
			num1 = num2;
			num2 = tep;
		}
		return tep;
	}

}
int main()
{
	int n = 0;
	printf("请输入一个正整数->");
	scanf("%d", &n);
	int a = climbStairs(n);

	printf("%d\n", a);
	system("pause");
	return 0;
}

实现 int sqrt(int x) 函数。

计算并返回 x 的平方根,其中 x 是非负整数。

由于返回类型是整数,结果只保留整数的部分,小数部分将被舍去。

示例 1:

输入 : 4
输出 : 2
示例 2 :

输入 : 8
输出 : 2
说明 : 8 的平方根是 2.82842…,
由于返回类型是整数,小数部分将被舍去。
我的想法就是当一个整数大于三的时候,那么这个数一半的平方肯定是大于等于这个数,所以我们只需要在0—n/2之间找到一个数,它的平方小于等于n,它加一的平方大于n就行了。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>

int mySqrt(int x) {
	if (x>1)
	{
		for (int i = 1; i <= x / 2; i++)
		{
			if ((i <= x / 2) && ((i + 1)>x / (i + 1)))
			{
				return i;
			}
		}
	}
	return x;
}
int main()
{
	int n = 0;
	printf("请输入一个正整数->");
	scanf("%d", &n);
	int a=mySqrt(n);
	//int a = climbStairs(n);

	printf("%d\n", a);
	system("pause");
	return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?实现 int sqrt(int x) 函数。 的相关文章

  • 毕业设计 - 基于云平台的火灾报警器 - stm32 物联网 单片机 OneNET云平台

    文章目录 0 简介 1 项目简介 2 开发环境 3 火焰传感器 4 连接OneNET云平台 5 演示效果 6 最后 0 简介 Hi 大家好 学长今天向大家介绍一个 单片机项目 基于云平台的火灾报警器 stm32 物联网 单片机 OneNET
  • 【linux kernel】挂载根文件系统之rootfs

    挂载根文件系统之rootfs 文章目录 挂载根文件系统之rootfs 一 开篇 二 rootfs根文件系统 2 1 初始化rootfs 2 2 挂载rootfs文件系统 2 3 创建简单的rootfs根文件系统目录和文件 2 4 打开0 1
  • [Python系列-27]:命令行解析器argparse详解

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 122276305 目录 第1章 arg
  • GB/T28181-2022相对2016版“基于TCP协议的视音频媒体传输要求“规范解读和技术实现

    规范解读 GB T28181 2022和GB T28181 2016规范 有这么一条 更改了附录 D 基于 TCP 协议的视音频媒体传输要求 见附录 D 2016 年版的附录 L 本文主要是针对GB T28181 2022里面提到的 基于
  • 【Java】Excel中添加下拉框

    0 两种方式 有两种方式可以实现 我仅在此记录一下 POI Hutool 1 使用 POI import org apache poi ss usermodel DataValidation import org apache poi ss
  • Web自动化元素定位

    元素定位就是通过元素的信息或元素层级结构来定位元素 要使用Web自动化操作元素 必须首先找到此元素 1 元素定位方式 1 1 基于元素属性特有的定位方式 1 id element driver find element by id id i
  • Python入门习题(91)——OpenJudge百练习题:汉诺塔问题

    OpenJudge百练第4147号习题 汉诺塔问题 题目描述 解题思路 参考答案 测试用例 小结 题目描述 来源 OpenJudge网站 百练习题集 第4147号习题 要求 总时间限制 1000ms 内存限制 65536kB 描述 一 汉诺
  • 猎聘发布《2019年中国5G人才需求大数据报告》

    在今年2月于西班牙巴塞罗那举办的2019世界移动通信大会上 华为 小米 vivo等中国企业先后扎堆发布了自己的5G手机 更加凸现了本次大会 5G商用产品 这一亮点 与此同时 5G成为大众新的关注焦点 借此契机 中高端人才职业发展平台猎聘推出
  • OVAL学习笔记

    很多其它好文章 http blog csdn net aap159951 article details 51131937 OVAL由MITRE公司开发 是一种用来定义检查项 脆弱点等技术细节的一种描写叙述语言 OVAL相同使用标准的XML
  • Android图片设置点击事件,Android EditText中插入图片并响应点击事件

    import android os Bundle import android app Activity import android content Context import android util Log import andro
  • 第3章 R语言编程基础——基于R软件的传统计算(超详细)

    3 1 统计分析 多元统计分析常用的 R 包和函数 3 1 1 多元回归分析 随机误差 计量模型 案例分析 M2 的建模与预测 残差的五数 估计参数的回归值 标准差 t检验量 p value 单变量显著性检验 拟合优度和 F 检验 Resi
  • bnu1331 赈灾捐款 C语言版

    北京师范大学珠海分校 Judge Online of ACM ICPC 1331 赈灾捐款 C语言版 include
  • ubuntu18.04下的mysql创建表

    ubuntu18 04下的mysql创建表 MySQL创建数据表 错误排查 出现报错 百度的解决思路 实际操作 MySQL创建数据表 删除表 drop table h data 创建表 CREATE TABLE IF NOT EXISTS
  • 第9章、图像按钮ImageButton(从零开始学Android)

    在Android App应用中 默认的Button按钮尽管我们可以通过样式变成圆角 但有时感觉仍然不够美观 我们可以通过采用图像按钮ImageButton改善这种现状 今天我们就一起学习一下图像按钮的使用 知识点 图像按钮ImageButt
  • 【数据结构课设】 浮点数计算器

    一 简介 1 功能介绍 实数的计算 支持取对数 幂次 开方及加减乘除运算 2 模块设计 1 菜单界面 2 计算器功能简介 3 计算器功能实现 3 计算器功能实现方法 1 字符串读入用户的表达式 2 处理字符串 包括提取实数以及中缀转后缀 维
  • idea开发中git合并的代码,

    方法一 将master主分支 合并到 子分支dev上 1 当前如果在dev分支上 先提交dev分支的代码到本地 然后推送到服务器 2 然后切换分支到master主分支上 先更新master主分支的代码到本地 然后主分支就是最新代码了 3 再
  • python 安卓模拟点击_Android后台模拟点击探索(附源码)

    工作中我们需要自制一套工具 其中遇到需要模拟点击事件的需求 类似按键精灵的功能 支持后台持续运行 满足触发条件时完成点击 经过一番探索 一共整理出两种不同的方案 AccessibilityService 和 adb shell命令 读者可自
  • Matlab中的c2d函数离散化

    把传递函数离散化 dsys c2d sys ts method 传函离散 num den tfdata dsys v 离散后提取分子分母 这里面的method有好多种 zoh 零阶保持 假设控制输入在采样周期内为常值 为默认值 foh 一阶

随机推荐