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

【递归与递推】数的计算|数的划分|耐摔指数

 1.数的计算 - 蓝桥云课 (lanqiao.cn)

思路:

 1.dfs的变量=>每一次递归什么在变?

        (1)当前数的大小一直在变:sum

        (2)最高位的数:k

2.递归出口:最高位数字为1

3.注意:尽量使用全局变量 

public class Main {static int n = 0;static int count = 0;public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt();dfs(n,n);System.out.println(count);}public static void dfs(int sum,int k) {//sum表示:当前数的大小;k代表最高位的数//递归出口count++;if (k==1) {return;}for (int i = 1; i <= k/2; i++) {dfs(sum*10+i,i);}}
}

1.数的划分 - 蓝桥云课 (lanqiao.cn)

 思路:

1.dfs的变量=>每一次递归什么在变?

(1)m:已经选了几个数了

(2)  last:已经遍历到哪一个数了(因为为了避免重复,排序都是从小到大)

(3)sum:当前选定的几个数的和

2.递归出口

(1)已经选定的数m   ==  k  (但是满足不一样就符合要求)

 (2)看当前选定的几个数的和sum  == n

3.注意:尽量使用全局变量 

//数的划分
public class Main {static int n;static int k;static int count=0;public static void main(String[] args) {Scanner sc = new Scanner(System.in);n = sc.nextInt();k = sc.nextInt();dfs(0, 1,0);System.out.println(count);}public static void dfs(int m, int last,int sum) {
//m代表选取了m个数了;last表示遍历到哪个数了;sum代表目前已经累计多大的数了if (m == k) {//递归出口if (sum==n) count++;return;}for (int i = last; i <= n-sum; i++) {dfs(m+1,i,sum+i);}}
}

 1.耐摔指数 - 蓝桥云课 (lanqiao.cn)

思路: 

最佳策略就是第一次从中间,也就是m=n/2开始测,此时有两种情况:

1.第一部手机摔坏了。那么第二部手机只能从第一层慢慢的一层一层的向上测  此时b[i]=i-1+1=i  (1是第一部手机测的那一次,i-1是第二部手机测的那i-1次)

2.第一部手机没摔坏。那么还剩两部手机可以从下一层往上测i-1次   此时b[i]=b[i-1]

b[i]=b[i-1]+i;  //上一部手机没摔坏+上一部手机摔坏

3.第三部手机的分析跟第二部手机的分析一样,第三部手机相对于第二部手机来说是它的“第二部手机”  

c[i]=c[i-1]+b[i-1]+1;   //上一步手机没摔坏+上一部手机摔坏

public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);int[] f2=new int[10010];//表示两步手机测i次的情况下能测的层数int[] f3=new int[10010];//表示三步手机测i次的情况下能测的层数int n = sc.nextInt();int i = 0;while(f3[i]<n) {i++;f2[i] = f2[i-1] + i;f3[i] = f3[i-1] + f2[i-1] + 1;}System.out.println(i);}
}

http://www.lryc.cn/news/333692.html

相关文章:

  • 企业案例:金蝶云星空集成钉钉,帆软BI
  • 简单设计模式讲解
  • 基于springboot的社区医疗服务系统
  • 影院座位选择简易实现(uniapp)
  • 调用飞书获取用户Id接口成功,但是没有返回相应数据
  • STM32 GPIO输入检测——按键
  • Rustdesk二次编译,新集成AI功能开源Gpt小程序为远程协助助力,全网首发
  • 面试(03)————多线程和线程池
  • 纯CSS实现未读消息显示99+
  • 【C++】C++ primer plus 第十二章--类和动态内存分配
  • 分类预测 | Matlab实现GWO-LSSVM灰狼算法优化最小二乘支持向量机数据分类预测
  • 使用PHP进行极验验证码动态参数提取与逆向分析
  • 43.1k star, 免费开源的 markdown 编辑器 MarkText
  • ArcGIS Pro怎么进行挖填方计算
  • POLY - Survival Melee Weapons
  • 【ARMv7-M】| 01——阅读笔记 | 简介|应用程序级编程和内存模型
  • 用Python做一个4399游戏脚本原来这么简单 !(内含完整思路)
  • 【计算机网络】应用层——HTTPS协议详解
  • 私家侦探如何追踪难以找到的人?
  • 一文讲透亚马逊云命令行使用
  • 感染了后缀为.jayy勒索病毒如何应对?数据能够恢复吗?
  • 一键快速彻底卸载:Mac软件轻松删除,瞬间释放磁盘空间
  • (React Hooks)前端八股文修炼Day9
  • 工厂方法模式:灵活的创建对象实例
  • vue-codeirror编辑器vue3中的使用
  • 搭建python编译环境
  • 微信小程序登录流程
  • FPGA + 图像处理(三)生成3x3像素矩阵
  • Redis安装说明2
  • ArcGIS10.8保姆式安装教程