20世纪60年代,软件开始脱离硬件,逐渐成为一个独立产业。至今,软件开发过程从瀑布模型、CMM/CMMI,到20年前敏捷的诞生,再到今天DevOps的火热,一代代软件人在思考和探索,如何避开“焦油坑”,试图寻找软件交付的“银弹”。 焦油坑:复杂且让人感觉束缚,越陷越深难以摆脱。常被软件开发者形容软件产品的复杂度成倍增长;银弹:比喻词,形容解决问题的捷径。 图源网络 DevOps作为目前软件工程界的集大成者,备受关注,业界也有很多讨论。近年来包括博云在内的很多厂商,也投身于DevOps之中,希望将更好的软件研发管理方法与工程实践通过产品和服务带给客户。 软件工程的故事软件工程的产生:软件危机2
172、木棒切割问题https://sunnywhy.com/problem/172题目描述给出n根木棒的长度,现在希望通过切割它们来得到至少k段长度相等的木棒(长度必须是整数),问这些长度相等的木棒的最大长度。输入描述第一行为两个正整数n、k(1≤n≤103、1≤k≤108),分别表示木棒的根数、需要得到的长度相等的木棒根数;第二行为n个整数(1≤每个整数≤105),表示木棒的长度。输出描述一个整数,表示木棒的最大长度。如果无法达成,此时最大长度为0。思考如果通过暴力解法,那么复杂度为\(O(n^2)\)。每轮选择一个长度遍历每根绳子。已知木棒分割的长度为正整数,且位于\([1,max(每根
172、木棒切割问题https://sunnywhy.com/problem/172题目描述给出n根木棒的长度,现在希望通过切割它们来得到至少k段长度相等的木棒(长度必须是整数),问这些长度相等的木棒的最大长度。输入描述第一行为两个正整数n、k(1≤n≤103、1≤k≤108),分别表示木棒的根数、需要得到的长度相等的木棒根数;第二行为n个整数(1≤每个整数≤105),表示木棒的长度。输出描述一个整数,表示木棒的最大长度。如果无法达成,此时最大长度为0。思考如果通过暴力解法,那么复杂度为\(O(n^2)\)。每轮选择一个长度遍历每根绳子。已知木棒分割的长度为正整数,且位于\([1,max(每根
REMrem是一个相对尺寸,它相对于html根元素来进行计算类推3REM为48px。改变html根元素font-size属性的大小。那么REM值也会随之改变。html{font-size:50px;/*默认16px*/}此时3REM为150px。接下来我们通过一个小案例来演示。f-size使用了textcss类html{font-size:16px;}.text{font-size:1rem;}修改类选择器.text的font-size为2rem后。可以看到f-size随之变大了。让我们在做一次修改,可以看到40*2=80px。html{font-size:40px;}.text{font-s
REMrem是一个相对尺寸,它相对于html根元素来进行计算类推3REM为48px。改变html根元素font-size属性的大小。那么REM值也会随之改变。html{font-size:50px;/*默认16px*/}此时3REM为150px。接下来我们通过一个小案例来演示。f-size使用了textcss类html{font-size:16px;}.text{font-size:1rem;}修改类选择器.text的font-size为2rem后。可以看到f-size随之变大了。让我们在做一次修改,可以看到40*2=80px。html{font-size:40px;}.text{font-s
使用胡凡主编的《算法笔记》教材。题目均为第三章题目。TEST//ProblemAddress#define_CRT_SECURE_NO_WARNINGS#includeintmain(){return0;}PAT_B10013n+1//https://pintia.cn/problem-sets/994805260223102976/exam/problems/994805325918486528#includeintmain(){intsteps=0,n;scanf("%d",&n);while(n!=1){if(n%2==0){n/=2;}else{n=(3*n+1)/2;}steps++
使用胡凡主编的《算法笔记》教材。题目均为第三章题目。TEST//ProblemAddress#define_CRT_SECURE_NO_WARNINGS#includeintmain(){return0;}PAT_B10013n+1//https://pintia.cn/problem-sets/994805260223102976/exam/problems/994805325918486528#includeintmain(){intsteps=0,n;scanf("%d",&n);while(n!=1){if(n%2==0){n/=2;}else{n=(3*n+1)/2;}steps++
花了几个小时整合的"ACompleteGuidetoFlexbox"最新版本,介绍了flexbox的所有属性,外带几个实用的例子。传统布局、Flexbox布局的传统解决方案,基于盒状模型,依赖display、position、float三大属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。Flex是FlexibleBox的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。背景Flexbox提供了一种有效的方
花了几个小时整合的"ACompleteGuidetoFlexbox"最新版本,介绍了flexbox的所有属性,外带几个实用的例子。传统布局、Flexbox布局的传统解决方案,基于盒状模型,依赖display、position、float三大属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。Flex布局,可以简便、完整、响应式地实现各种页面布局。目前,它已经得到了所有浏览器的支持,这意味着,现在就能很安全地使用这项功能。Flex是FlexibleBox的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。背景Flexbox提供了一种有效的方
第一期·使用Vue3.1+TypeScript+Router+Tailwind.css构建手机底部导航栏、仿B站的登录、注册页面。代码仓库alicepolice/Vue-05(github.com)构建项目新建项目导入bootstrap-icons-vuebootstrap-icons-vue-npm(npmjs.com)导入Tailwind在Vue3和Vite安装TailwindCSS-TailwindCSS中文文档安装VSCODE插件构建目录文件PSC:\Users\小能喵喵喵\Desktop\Vue\Homework\homework2\src>tree/fC:.│App.vue│ind