一. 字符的全排列 对一个数组进行全排列,无重复元素,定义递归函数为前i-1个元素全排列已经排好, 将第i个元素以及后面的元素进行全排列。过程为从第i个元素到最后一个元素轮流放在第i个位置上, 然后对第i+1个元素以及后续元素进行全排列。 二. 大整数的乘法 leetcode43 MultiStri ...
分类:
其他好文 时间:
2019-07-04 00:40:11
阅读次数:
97
1207: 大整数的乘法 题目描述 求两个不超过200位的非负整数的积。 输入 有两行,每行是一个不超过200位的非负整数,没有多余的前导0。 输出 一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。 样例输入 样例输出 Java代码实现(AC): ...
分类:
编程语言 时间:
2018-05-18 11:44:34
阅读次数:
241
二进制相加,本质上就是大整数加法,有关大整数加法我的舍友教过我一个非常好的方法,先用一个int数组保存结果,将两个数相应位置相加,所有加完后。再统一处理进位的问题。这种方法相同适用于大整数的乘法。 这个题没什么特别的,注意一下进位别搞错了即可了,还有事实上不用像我写的这么麻烦,能够一開始先推断哪个更 ...
分类:
其他好文 时间:
2017-06-04 21:24:46
阅读次数:
121
大整数的乘法由于用分治法理解起来有点困难,就采用人的计算方法实现,大整数为string 类型,结果也为string类型。 大整数的除法采用先乘后减的方法,例如: 665/20 首先20*10=200;然后665去减200,通过循环计入减了3次,则结果记入3*10=30;然后20*1=20,上次减了之 ...
分类:
编程语言 时间:
2017-05-21 11:53:43
阅读次数:
231
【问题】若X和Y都是n位二进制整数,设计一个有效的算法,可以进行两个n位大整数的乘法运算。 【算法讲解】 【时间复杂度】 ...
分类:
编程语言 时间:
2017-04-04 01:05:32
阅读次数:
281
https://vjudge.net/problem/POJ-1047 题意: 给一个整数,它的长度为n,从1开始一直到n和该整数相乘,判断每次结果是否和原来的整数是循环的。 思路: 大整数的乘法。 ...
分类:
其他好文 时间:
2017-04-02 18:41:16
阅读次数:
146
1. 大整数的乘法
方法有两种:
(1)“列表法”
(2)分治法
2. 整数划分问题
假设在正整数n的所有不同的划分中,用q(n,m)表示最大加数不大于m的划分个数。
于是有以下基本项和递归项成立:
基本项:
当n >=1, 则q(n,1) = 1;
递归项:
当m = n, 则q(n,m) =q(n,m-1...
分类:
编程语言 时间:
2016-05-13 15:16:57
阅读次数:
186
一、分析
整数的数值超过计算机硬件所能表示的最大值时,那么我们只能借助软件的方法来实现大整数的乘法了。
我们可以使用字符串来模拟大整数的乘法,算法的思想就是使用我们在小学时学过的乘法,一位位相乘,最后计算出结果。如下:
1 2 3
x 1 2
------------------------
2 4 6
1 2 3
----------------------...
分类:
其他好文 时间:
2015-06-15 18:44:32
阅读次数:
120
思想:每次取第二个数的最高位进行一次乘法,把结果乘以10和下一次结果相加,题目来源:leetcode
class Solution {
public:
//一个整数乘以一个个位数
string multOneBit(string num,int data)
{
int i = num.size() - 1,carry = 0;
string res;
...
分类:
其他好文 时间:
2014-08-11 21:33:32
阅读次数:
262
二进制相加,本质上就是大整数加法,有关大整数加法我的舍友教过我一个很好的方法,先用一个int数组保存结果,将两个数对应位置相加,全部加完后,再统一处理进位的问题。这个方法同样适用于大整数的乘法。
这个题没什么特别的,注意一下进位别搞错了就行了,还有其实不用像我写的这么麻烦,可以一开始先判断哪个更长一些,交换一下。代码会简洁很多。class Solution {
public:
strin...
分类:
其他好文 时间:
2014-05-13 08:02:00
阅读次数:
239