分式

Leetcode题解: LCP2 分式化简

限于喜欢 提交于 2020-01-19 19:32:02
题目描述 有一个同学在学习分式。他需要将一个连分数化成最简分数,你能帮助他吗? 连分数是形如上图的分式。在本题中,所有系数都是大于等于0的整数。 输入的cont代表连分数的系数(cont[0]代表上图的a0,以此类推)。返回一个长度为2的数组[n, m],使得连分数的值等于n / m,且n, m最大公约数为1。 解题思路 首先将计算连分数过程抽象为不断计算ax+1/(n/m)的过程。以an-1为起点,递推地执行该过程。最后使用辗转相除法进行化简。 代码 class Solution { public : vector < int > fraction ( vector < int > & cont ) { vector < int > result ; int n , m ; //n为分子,m为分母 int oldN , oldM ; //首先以an-1为起点,初始化[n,m] n = cont . at ( cont . size ( ) - 1 ) ; m = 1 ; //接下来循环处理an-2到a0 for ( int i = cont . size ( ) - 2 ; i >= 0 ; i -- ) { oldN = n ; oldM = m ; n = cont . at ( i ) * oldN + oldM ; m = oldN ; } //下面进行分式化简 int

约分最简分式

最后都变了- 提交于 2019-12-11 12:22:18
编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。 输入格式:输入在一行中给出一个分数,分子和分母中间以斜杠/分隔,如:12/34表示34分之12。分子和分母都是正整数(不包含0,如果不清楚正整数的定义的话)。 提示:在scanf的格式字符串中加入/,让scanf来处理这个斜杠。 输出格式:在一行中输出这个分数对应的最简分式,格式与输入的相同,即采用分子/分母的形式表示分数。如 5/6表示6分之5。 # include <stdio.h> int main ( void ) { int a , denominator , i , m , n ; scanf ( "%d/%d" , & a , & denominator ) ; if ( a == denominator ) { printf ( "1/1" ) ; } else { for ( i = 1 ; i < ( a + denominator ) ; i ++ ) { if ( a % i == 0 && denominator % i == 0 ) { m = a / i ; n = denominator / i

【leetcode】LCP 2. 分式化简

浪子不回头ぞ 提交于 2019-12-02 16:56:41
题目如下: 有一个同学在学习分式。他需要将一个连分数化成最简分数,你能帮助他吗? 连分数是形如上图的分式。在本题中,所有系数都是大于等于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)。 解题思路: 题目不难,用两个变量分别记录分子和分母的值,从后往前计算cont,每次计算完成后交换分子和分母的值即可。 代码如下: class Solution(object): def fraction(self, cont): """ :type cont: List[int] :rtype: List[int] """ rc = cont[::-1]

word常用技巧(1)

核能气质少年 提交于 2019-12-02 10:45:29
单击格式刷,格式只能使用一次,双击格式刷,可将格式多次地使用到别的地方 按ESC退出格式刷 设置编号与正文文本的间距: 右键项目符号--调整列表缩进--编号之后--无特别标注 追加连续编号: 1.把光标放在要加编号的段落前--开始--段落--编号 2.开始--剪贴板--格式刷--单击要加跟前面编号连续的编号的段落 追加不连续编号: 选中要编号的文本--开始--段落--定义新编号格式--编号样式:设置一种样式--对齐方式:左对齐--字体自己设置--确定--这时会给所有文本编号--右键要重新开始编号的编号--设置编号值,这里可以设置要将这里的编号换成从几开始的新的编号:选中“开始新列表”,值自己设置--确定 项目符号与编号类似,只是编号形式是数字形式,项目符号是符号形式 添加普通项目符号: 选中需要添加项目符号的段落文本--开始--段落--项目符号--定义新项目符号--符号--选一种--确定 添加系统图片项目符号: 选中添加项目符号的段落文本--开始--段落--项目符号--定义新项目符号--图片--选中包含来自office online的内容--输入要搜索的图片内容--搜索--选一个--确定 调整图片项目符号大小: 将光标定位在任意一个图片项目符号上--开始--字体--字号 添加外来图片项目符号: 选中要添加项目符号的段落文本--右键--项目符号--定义新项目符号--图片--导入-

博客园数学公式(转)

眉间皱痕 提交于 2019-11-27 13:43:12
博客园数学公式 首先:进入博客园>>管理>>选项>>启用数学公式支持 使用:将公式写在中 '\''(' 此处填写公式内容 '\'')' ,去掉全部引号 举例:‘\''(’a^{5}=a^{2}*a^{3}‘\'')’ 显示: a 5 = a 2 ∗ a 3 a5=a2∗a3 '\''('F_{n} = F_{n-1} + F_{n-2}'\'')' 显示: F n = F n − 1 + F n − 2 Fn=Fn−1+Fn−2 推荐一个在线公式编辑器: http://latex.codecogs.com/eqneditor/editor.php 可以在这里写好了把公式复制过来。 附: 数学公式基本命令 转自: http://hubl82.blog.163.com/blog/static/12676948520134510173383/ 数学公式必须在数学模式下使用,即数学公式必须放在数学环境下,数学模式可以有很多种表示形式,不同的数学模式的显示效果是不同的,ams(美国数学学会)还特别定义了一组数学模式宏包,可在导言区调用该宏包,然后在正文中使用该宏包的命令,关于数学模式和ams的讨论放在后面进行,这里主要说明Latex的基本数学公式命令。一些常见的数学环境包括 数 学 公 式 数学公式 、 数 学 公 式 数学公式、 数 学 公 式 数学公式 、 数 学 公 式 (1) (1