当前位置: 首页 > news >正文

网站做关键词首页专业网站设计服务在线咨询

网站做关键词首页,专业网站设计服务在线咨询,杭州市拱墅区网站建设,某互联网公司开发官网的首页目录 前言 1 题目描述 2 分析 2.1 关键代码 2.2 关键代码分析 3 代码 前言 详细的代码里面有自己的理解注释 1 题目描述 给定两个非负整数#xff08;不含前导 00#xff09; A 和 B#xff0c;请你计算 AB 的值。 输入格式 共两行#xff0c;第一行包含整数 A不含前导 00 A 和 B请你计算 A×B 的值。 输入格式 共两行第一行包含整数 A第二行包含整数 B。 输出格式 共一行包含 A×B 的值。 数据范围 1≤A的长度≤100000, 0≤B≤10000 输入样例 123 12 输出样例 1476 2 分析 这个题和前面对高精度-加-高精度和高精度-减-高精度的分析有细微差别因为前面的加减法都是高精度和高精度的运算这题是高精度和低精度的运算所以只要对A用先采用string存储然后换成int数字并且按照数组下标的低位存储数值低位存储数值B采用int存储即可。 2.1 关键代码 //C A * b vint mult1(vint A,int b) {vint C;int t 0;for(int i 0; i A.size(); i ) {//相当于// 1 2 3// * 1 2// 36 * 10^0 24 * 10^1 12 * 10^2 1476// 进位初始 t0 0// 3 * 12 t0 36 0 36 保留 6 进位 t1 3// 2 * 12 t1 24 3 27 保留 7 进位 t2 2// 1 * 12 t2 12 2 14保留 4 进位 t3 1// (36%10 t0)*10^0 (24%10 t1)*10^1 (12%10 t2)*10^2 t3*10^3// (6 0 ) * 10^0 (4 3) * 10^1 (2 2) * 10^2 1 * 10^3 1476//最后有个进位// 6 * 10^0 (4 3) * 10^1 (2 2) * 10^2 1 * 10^3 1476t A[i] * b t;C.push_back(t % 10);t t / 10;} // if(t){ // C.push_back(t); // } //不能用 if(t) 必须使用 while(t) 因为最后可能 t 不止 1 位 //比如 99 * 99 9801 最后 t 98 如果用 if(t) 实际上 C [98,0,1] 而不是 [9,8,0,1] //也可以不用下面的代码在for循环里面改为 i A.size() ||t并且加上 if(iA.size()) t A[i]*b twhile(t) {C.push_back(t%10);t t / 10;}//记得去前导 0 while(C.size() 1 C.back() 0) C.pop_back();return C; } 2.2 关键代码分析 代码实现的乘法运算和平常我们做题的计算是不一样的代码里面它是按照A的每位乘B存储的这样其实也是对的只是我们一般学的时候是两个数每位相乘再相加进位。当iA.size()时每位值结果为A[i]*B[i]%10进位为A[i]*B[i]/10其实理解起来比较简单比如123*12按平常我们的计算个位是3*26十位由两个部分构成1*32*27。而在代码里面我们直接用3*1236其中这个3*12的3先看作是个位36的3就是1*3那部分权重是106即是结果的个位下一步2*1224其中这个2*12的2先看作是十位24的2权重是1004就是2*2那部分也就是十位所以十位就是337百位的进位为2其他的依次类推即可。详细的计算说明在上面的关键代码里面有 3 代码 #includeiostream #includevectorusing namespace std; typedef long long LL; typedef vectorint vint;const int N 1e5 10;//C A * b vint mult1(vint A,int b) {vint C;int t 0;for(int i 0; i A.size(); i ) {//相当于// 1 2 3// * 1 2// 36 * 10^0 24 * 10^1 12 * 10^2 1476// 进位初始 t0 0// 3 * 12 t0 36 0 36 保留 6 进位 t1 3// 2 * 12 t1 24 3 27 保留 7 进位 t2 2// 1 * 12 t2 12 2 14保留 4 进位 t3 1// (36%10 t0)*10^0 (24%10 t1)*10^1 (12%10 t2)*10^2 t3*10^3// (6 0 ) * 10^0 (4 3) * 10^1 (2 2) * 10^2 1 * 10^3 1476//最后有个进位// 6 * 10^0 (4 3) * 10^1 (2 2) * 10^2 1 * 10^3 1476t A[i] * b t;C.push_back(t % 10);t t / 10;} // if(t){ // C.push_back(t); // } //不能用 if(t) 必须使用 while(t) 因为最后可能 t 不止 1 位 //比如 99 * 99 9801 最后 t 98 如果用 if(t) 实际上 C [98,0,1] 而不是 [9,8,0,1] //也可以不用下面的代码在for循环里面改为 i A.size() ||t并且加上 if(iA.size()) t A[i]*b twhile(t) {C.push_back(t%10);t t / 10;}//记得去前导 0 while(C.size() 1 C.back() 0) C.pop_back();return C; }int main() {string a;int b;cinab;//a 123,b 12vint A;//A[3 , 2 , 1]因为可能需要进位个位放数组低位方便在数组高位加上进位for(int i a.size() - 1 ; i 0 ; i --) {A.push_back(a[i] - 0);}if(b 0) {cout0;} else {vint C mult1(A,b);for(int i C.size() - 1 ; i 0 ; i --) {coutC[i];}//coutC.size();}return 0; }
http://www.dnsts.com.cn/news/175257.html

相关文章:

  • 广州小型网站建设公司qq音乐如何做mp3下载网站
  • 东莞网站建设哪个平台好lnmt wordpress
  • 平面设计师网站都有哪些织梦做的网站图片路径在哪
  • 建站教学视频企业文化墙
  • 中航长江建设工程有限公司网站宿迁交通工程建设有限公司网站
  • 东莞自己建网站哪家强wordpress登陆post
  • 代点任意广告链接网站针对网站做搜索引擎做优化
  • 南通哪里做网站软件开发工资一般多少
  • 个人电脑可以做网站服务器吗计科专业毕设做网站
  • 深圳建网站就找兴田德润创业加盟网1688
  • 淘宝网站建设与规划网站建设 重庆
  • 租赁服务器的网站网站制作评价标准
  • 品牌网站建设的关键事项wordpress 手机发博文
  • 鹤岗网站建设做农产品的网站名称
  • 联合网站设计查企企官网
  • 如何搜名字搜到自己做的网站电商网红排行榜
  • 太原站扩建后的规模南昌seo推广方式
  • 网站的管理wordpress博客头图怎么改
  • 网站建设关于简约创意logo设计免费生成
  • 网站制作温州易营宝网站建设
  • 门户网站舆情怎么做网站demo制作工具
  • 贵阳市做网站的公司有哪些免费做logo的网站
  • 惠阳网站建设公司如何在网站后台找到死链接
  • 网站目录创建下载链接万网ip地址查询
  • 门户网站建设管理总则推广品牌
  • 做网站的如何兼职企业管理软件定制开发
  • 保定网站维护windows优化大师自动安装
  • 加强协会网站建设意义金融视频直播网站开发
  • express 网站开发公众号开发信息在哪里
  • visual studio 做网站网站的功能定位和建设运营规划