C++学习之分式化简
2021.12.1 C++学习之分式化简
C++学习之分式化简
题目来源于力扣
题目如下:
有一个同学在学习分式。他需要将一个连分数化成最简分数,你能帮助他吗?
连分数是形如上图的分式。在本题中,所有系数都是大于等于0的整数。
输入的cont代表连分数的系数(cont[0]代表上图的a0,以此类推)。返回一个长度为2的数组[n, m],使得连分数的值等于n / m,且n, m最大公约数为1。
示例 1:
输入:cont = [3, 2, 0, 2]
输出:[13, 4]
解释:原连分数等价于3 + (1 / (2 + (1 / (0 + 1 / 2))))。注意[26, 8], [-13, -4]都不是正确答案。
示例 2:
输入:cont = [0, 0, 3]
输出:[3, 1]
解释:如果答案是整数,令分母为1即可。
限制:
cont[i] >= 0
1 <= cont的长度 <= 10
cont最后一个元素不等于0
答案的n, m的取值都能被32位int整型存下(即不超过2 ^ 31 - 1)。
这道题我的解法思路就是化简,先从最里面开始化简,把每个分母看成如下格式:
但最里面必有一个结果为1/an;例如根据样例 [3, 2, 0, 2],为
如何把a3变成我们需要的a+1/b就是关键,所以我们假设一个n/m,n=0,m=1;令最里面a3处实际为a3+0/1;但我们每次算完都是只计算了分母,故我们还需要将分子后分母颠倒。在最后时我们多颠倒了一次,故应该倒回来。
直接上代码:
class Solution {public:vector<int> fraction(vector<int>& cont) {int n=0,m=1;int tmp=0;int x = cont.size();for(int i=x;i>0;i--){n=cont[i-1]*m+n;tmp=n;n=m;m=tmp;}return vector<int>{m, n}; }
};
这道题就解开了。
C++学习之分式化简相关推荐
- 分式化简结果要求_分式约分的结果是()
分式加减乘除混合运算:分式的混合运算应先乘方,再乘除,最后算加减,有括号的先算括号内的,也可以把除法转化为乘法,再运用乘法运算. 分式化简:在数学上,化简是十分重要的概念,一些复杂难辨的式子,很多时候 ...
- Leetcode 02.分式化简
LCP 02. 分式化简 难度简单 有一个同学在学习分式.他需要将一个连分数化成最简分数,你能帮助他吗? 连分数是形如上图的分式.在本题中,所有系数都是大于等于0的整数. 输入的cont代表连分数的系 ...
- LCP 02. 分式化简-数学推导
LCP 02. 分式化简-数学推导 有一个同学在学习分式.他需要将一个连分数化成最简分数,你能帮助他吗? 连分数是形如上图的分式.在本题中,所有系数都是大于等于0的整数. 输入的cont代表连分数的系 ...
- 分式化简结果要求_初二数学期末复习,分式考点归纳,考点较多,解答要谨慎...
期末考试马上就要来临了,作为初二的学生,分式这部分的内容考试中考点还是比较多的,选择题,填空题,解答题都会有题目出现,这部分的考点主要有分式有无意义的条件,分式值为0的条件,分式的概念,分式化简求值类 ...
- 分式化简结果要求_分式化简的结果有什么要求?
分式的化简与求值 分式的有关概念和性质与分数相类似,例如,分式的分母的值不能是零,即分式只有在分母不等于零时才有意义;也像分数一样,分式的分子与分母都乘以(或除以)同一个不等于零的整式,分式的值不变, ...
- 求解leetcode分式化简
#include <stdio.h>//leetcode 分式化简int arr[2]; int* fraction(int* cont, int contSize, int* retur ...
- leetcode-Algorithms-LC-2 |分式化简
原题 思路 如果想写出来统一的公式,那就是极其错误的思想. 可以每次都当成一个独立的 1/(A1+1/A2)的运算. 代码 package leetcode.LCP;public class Solu ...
- MATLAB符号运算之分式化简(基础)
MATLAB常见的化简函数如下: pretty(f) 将符号表达式化简成与高等数学课本上显示符号表达式形式类似 collect(f) 合并符号表达式的同类项 horner(f) 将一般的符号表达式转换 ...
- leetcode LCP2 分式化简(C++)
有一个同学在学习分式.他需要将一个连分数化成最简分数,你能帮助他吗? 连分数是形如上图的分式.在本题中,所有系数都是大于等于0的整数. 输入的cont代表连分数的系数(cont[0]代表上图的a0,以 ...
最新文章
- oracle定时器怎么开启,Oracle的定时器使用示例
- private 的访问权限
- 可以永久改变你的编程技巧的40个Tips
- 【Qt开发】【VS开发】【Linux开发】OpenCV、Qt-MinGw、Qt-msvc、VS2010、VS2015、Ubuntu Linux、ARM Linux中几个特别容易混淆的内容...
- 小鑫の日常系列故事(六)——奇遇记_JAVA
- Jquery函数大全 - 案例说明
- grid++中打印表格时怎么让每页有打印表头_1分钟!学会快速打印标题行,轻松搞定不加班...
- 逻辑回归(logistic regression)的本质——极大似然估计
- oracle 客户端 for mips,盒子里的世界: MIPS虚拟机(zt)
- 用 PHPRPC 实现 Ajax 安全登录
- Shell.FlyoutHeader
- aix系统怎么开启ftp服务器,liunx和aix 系统开启ftp服务
- Java学习的准备工作
- 别再用 offset 和 limit 分页了,性能太差!
- 参加2022 年第四届齐鲁工业大学(山东省科学院)与山东师范大学ICPC 大学生程序设计竞赛的总结
- C语言 输入一个不大于五位的数字,先判断是几位数字,然后将其数字顺序输出和逆序输出
- icns文件怎么打开_Mac快速生成icns图标文件 | kTWO-个人博客
- 推荐系统基础之矩阵分解
- 电脑开不了机计算机无法启动,电脑中毒了开不了机怎么回事_电脑中毒无法开机的解决步骤-win7之家...
- LeCun称梯度下降是最优雅的 ML 算法,Marcus:我不同意
热门文章
- winmm.lib库
- C语言 switch语句
- emacs chinese manual
- [思考] 程序员能靠纯技术渡过中年危机吗?
- 【Javascript】求两个对象的交集、差集
- xwiki开发者指南-编写一个XWiki组件
- java treemap字母排序_Java TreeMap对数字,英文字母,汉字等排序例子
- android工程换背景图片,Android初学者:用知乎Matisse开源项目制作更换应用背景图片功能...
- js怎么实现网站抓取手机号
- php教程燕十八_2PHP 3小时光速入门视频教程【燕十八】