0基础学算法 第五弹 填坑

  1. 这个填坑系列,是为了能够解决大家在前面的疑点,如果你在前面有哪些疑点,可以加入QQ群1031467671,群名称叫球君博客的填坑群,入群问题答案是 球君,我要是在博客里有什么不足的,或着有什么讲的不清楚的地方,可以进去发表建议,好今天这期我就来填坑了,昨天有人说第四弹的乘法思路没讲清楚,所以今天我重新讲讲。

乘法的思路简单的说就是还是依靠竖式的原理,有第二个数的第一位乘上上面的全部数,再让第二个数的第二位乘上上面所有的数,这个操作用一个嵌套循环就可以完成了,再是进位问题,这个进位和加法有些不同,这里进位的思路是先不进位,将没进过位的数,也就是一个两位数存在一个数组的格子里,然后在后面部分对每一位去mod 9,来去取要进位的部分,往前面一位加上进位的数,然后再在这一位剪掉进了位的部分,然后执行相同的操作对下一位,这里给出个流程图做说明。

下面??,是完整代码

#include <bits/stdc++.h>
#define N 2001
using namespace std;
int main(){
    string s1,s2;
    int a[N],b[N],c[2*N],la,lb;
    cin>>s1>>s2;
    la = s1.length(),lb=s2.length();
    //cout<<la<<lb;
    for(int i=0;i<la;i++)
        a[i]=s1[la-i-1]-‘0‘;
    for(int i=0;i<lb;i++)
        b[i]=s2[lb-i-1]-‘0‘;
    for(int i=0;i<la;i++)
        for(int j=0;j<lb;j++)
            c[i+j]+=a[i]*b[j];
    int l=la+lb;
    //cout<<l;
    //return 0;
    for(int i=0;i<l;i++)
    {
        c[i+1]+=c[i]/10;
        c[i]%=10;
    }
    while(c[l-1]==0&&l>1) l--;
    for(int i=l-1;i>=0;i--)
    {
        cout<<c[i];
    }
    return 0;
}

显然我的坑明显不止这么多,我反思,我们继续

还是第四弹高精度(在这么多错),这个位置

这里说的有点问题,不是编译器,是c++的ide,还有一个问题

下面说的是第三弹的,我在第三弹给出的不是全部的队列操作,但常用的就是那些了

还有,平常我发的博文可能有的底发不严谨,大家可以去我的QQ群里说,群号1031467671,

如果你欣赏我的文章,麻烦点个赞,再关注?一下我,如果有什么我没说到的坑,请进群说明或留言

原文地址:https://www.cnblogs.com/qj-Network-Box/p/12522550.html

时间: 2024-10-22 09:56:46

0基础学算法 第五弹 填坑的相关文章

0基础学算法 第二弹 排序

大家好啊,这是0算法基础学算法系列第二篇,上次我在第一弹里讲了关于流程图的内容,我寻思着,这次讲些什么好呢,于是我决定,教大家一个很基础的算法,那就是排序,排序有很多方法,如果你有更多方法请在评论区里留言哦. 排序在程序中特别实用,常用的有快速排序,桶排序,冒泡排序,插入排序等等,在这里我不建议使用冒泡排序或者插入排序,建议桶排序和快速排序,这两个排序非常实用,时间复杂度低,理解起来也很容易,首先,你先思考一下,怎么用程序进行排序,然后你再来看看你的思路合理不合理,最后试着用程序实现它,实现后你

&lt;-0基础学python.第一课-&gt;

初衷:我电脑里面的歌曲很久没换了,我想听一下新的歌曲,把他们下载下来听,比如某个榜单的,但是一首一首的点击下载另存为真的很恶心 所以我想有没有办法通过程序的方式来实现,结果还真的有,而且网上已经有有人用python来实现了,而且还给出了原代码, 我兴致勃勃的下载下来用,但是根本没有效果,原因是他们给的是2.7版本的程序,我用的软件是3.4版本的, 我又下载了2.7版本的但是运行的时候还是有地方报错,而我又不知道怎么修改,然后觉得时候系统的学习一下了. 宏观目标:让我的工作效率更高 1.写程序帮我

0基础学C语言:C语言视频教程免费分享!

C语言是一种通用的.过程式的编程语言,广泛用于系统与应用软件的开发.作为计算机编程的基础语言,长期以来它一直是编程爱好者追捧而又比较难学的语言.C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点. 很多初学者在学习C语言的时候,如果有适合自己的视频教程,学习起来就会事半功倍.今天在这里给大家分享一个0基础学习C语言的视频教程,需要的朋友可以看看,作为参考! 课程部分截图: 百度云盘下载:http://pan.baidu.com/s/1jIbtWEi 密码:npd9

0基础学Python难吗?学习Python需要多长时间?

Python,大家都知道是一门0基础可以入门学习的编程语言,也是应用领域广泛,薪资待遇高.发展前景好的岗位,那么,0基础学习Python难吗?0基础学习Python需要多长时间?小编为大家详细的介绍一下吧. 如果你是毫无基础,甚至于英文和数学方便都不是很好的情况下,那么自学这条路是完全行不通的,学习起来非常艰难,毕竟什么情况都不太懂,学习起来很容易失去兴趣,事半功倍,需要参加培训才可以更好的掌握好课程. 如果具备一定基础的情况下,那么学习Python是比较简单的,要比其他的编程语言更加容易一些,

从0开始学算法--基础数据结构(2.8并查集)

算法理解: 根据名字就能很好的理解这个算法,集合的合并和查询 合并什么?查询什么? 合并操作为:把x所在的集合和y所在的集合合并为一个集合.查询x和y是否在一个集合里. 如:元素为1-n,这n个元素分别在编号为1-n的集合中.如果将3和5合并成为一个集合,只需要将元素3指向元素5即可 现在把元素5和元素2所在的集合合并合并,5指向2 可以看到如果要查询2和3是不是在一个集合中,只需要查询2和3的祖先是不是同一个元素就可以了 查询祖先代码 //f[x]初始化为f[i]=i; int find_se

0基础学IOS开发怎样入门

1 .信念. 很大程度上,学iOS就是一个信念的事情.iOS开发本身不难学,不需要你有很高的智力,只需要你能够坚持下去.只要你心中有信念,坚持下去就会有收获.不管你是学哪一种编程语言,不用怀疑你能不能学会,只要你肯下工夫,坚持下去就一定会成,学不会只有一个原因,你没有付出足够的努力. 2.英语. 几乎所有重要语言,重要开发工具,开源项目都是在英文网站上以英文的形式展示.如果你连官方的文档读起来都非常困难,那还谈什么提高和进阶,咱们学习iOS的所有权威的资料都来自apple开发者网站,靠逛论坛看帖

从0开始学算法--排序(1.5归并排序)

算法理解: 一个数组长度为n,他的前m个元素是升序的,后n-m个元素升序的,怎么使整个数组变成一个升序数组? 如n=6,m=3 1 3 5 2 4 6 1 2 3 4 5 6 排序前 排序后 #include <algorithm> #include <iostream> #include <cstring> #include <vector> #include <cstdio> #include <cmath> #include &

从0开始学算法--排序(1.7快速排序)

算法理解: 对于无序数组里的任意一个数字V,总有一部分数字小于V,一部分数字大于V.如果我们将比V小的数字放在V的前面,比V大的数字放在后面,那V所在的位置就是整个数组排序后V应该在的位置. 同时我们得到了两个连续的无序数组,和归并排序一样左右递归处理即可. #include <algorithm> #include <iostream> #include <cstring> #include <vector> #include <cstdio>

从0开始学算法--排序(1.8桶排序)

算法理解: 桶排序是对计数排序的一种优化,在计数排序中x应该放在计数数组下表为x的位置上,这样如果重复数字较少,计数数组每个位置的利用率就非常小. 桶排序是将一系列大小近似的数字放在一个位置(每个桶维护一条有序的链表),这样提高每个位置的利用率,以提高效率. 以A[]={1,21,23,41,49}为例 假设每个桶里有10中元素,那么桶排序的结构如下图所示. #include <algorithm> #include <iostream> #include <cstring&