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

良品铺子网站制作线上营销方式

良品铺子网站制作,线上营销方式,域名购买备案,别墅室内设计网站高精度加法-目录 高精度加法用途高精度加法模板string转数位数组int 转数位数组(附加型知识点)高精度输出高精度加法函数大合集!!! 高精度加法用途 高精度加法通常用于加很大的数(真的很大, 超unsigned long long的那种). 高精度加法模板 注: 本篇数组下标0(x[0])存储的是该…

高精度加法-目录

  • 高精度加法用途
  • 高精度加法模板
    • string转数位数组
    • int 转数位数组(附加型知识点)
    • 高精度输出
    • 高精度加法
    • 函数大合集!!!

高精度加法用途

高精度加法通常用于加很大的数(真的很大, 超unsigned long long的那种).

高精度加法模板

注: 本篇数组下标0(x[0])存储的是该数组的有效位数.

string转数位数组

我们一般使用string类型存储很大的数.
这个时候, 高精度加法要干的是模拟列竖式, 把每一位加起来, 然后再考虑进位的问题. 模拟列竖式需要数位末尾对齐, 所以我们最好把原始数据反转一下.
考虑以上两点, 需要先把string转换成int数位数组. 在这里我们以普通int数组举例, 除此之外还能用vector或者short数组或者继续用string也行.

// 头文件
#include <iostream>
#include <string>
using namespace std;// **** 重点!!! ****
// 一般我们用'2'表示英语单词'to'
void s2BIG(string s, int a[]){int len = s.size();for(int i = 1; i <= len; i++){a[i] = s[len - i] - '0';}a[0] = len;
}// 使用方法
int main(){string s;cin >> s;s2BIG(s, A);// ......return 0;
}

int 转数位数组(附加型知识点)

这是一个特殊的点, 因为有时候我们要把int和所谓的BIG进行高精度运算, 这时我们需要把int转换为BIG(数位数组).通过while拆位实现.

void i2BIG(int n, int a[]){int cur = 0;while(n > 0){cur++;a[cur] = n % 10;n /= 10;}if(cur == 0) cur++;a[0] = cur;
}

后续代码会把这段加上, 但可能不会再用.


高精度输出

我们先把辅助的代码讲完. 我们完成加法后, 我们肯定要把它输出出来, 由于是反着计算的, 所以要反着输出. 这个时候我们就需要高精度输出. 我们实现的功能是把进入函数的数组反向输出.
本段代码整合了上一段的代码.

#include <iostream>
#include <string>
using namespace std;int a[1005];void s2BIG(string s, int a[]){int len = s.size();for(int i = 1; i <= len; i++){a[i] = s[len - i] - '0';}a[0] = len;
}void i2BIG(int n, int a[]){int cur = 0;while(n > 0){cur++;a[cur] = n % 10;n /= 10;}if(cur == 0) cur++;a[0] = cur;
}void printBIG(int a[]){int len = a[0];for(int i = len; i > 0; i--){cout << a[i];}cout << endl;
}int main(){string s;cin >> s;s2BIG(s, a);printBIG(a);return 0;
}

高精度加法

分为以下部分:

  • 写入有效长度
  • 对应位数求和
  • 处理进位情况
  • 根据最高位更新长度
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;int x[1005], y[1005], z[1005];void s2BIG(string s, int a[]){int len = s.size();for(int i = 1; i <= len; i++){a[i] = s[len - i] - '0';}a[0] = len;
}void i2BIG(int n, int a[]){int cur = 0;while(n > 0){cur++;a[cur] = n % 10;n /= 10;}if(cur == 0) cur++;a[0] = cur;
}void printBIG(int a[]){int len = a[0];for(int i = len; i > 0; i--){cout << a[i];}cout << endl;
}/**** 新增 ****/
void addBIG(int x[], int y[], int z[]){z[0] = max(x[0], y[0]);				// 先写出有效长度for(int i = 1; i <= z[0]; i++)		// 对应位求和z[i] = x[i] + y[i];for(int i = 1; i <= z[0]; i++){		// 处理进位z[i + 1] += z[i] / 10;z[i] %= 10;if(z[z[0] + 1] != 0)			// 处理最高位进位, 更新有效位数z[0]++;}
}int main(){string a, b;cin >> a >> b;s2BIG(a, x);s2BIG(b, y);addBIG(x, y, z);printBIG(z);return 0;
}

函数大合集!!!

void s2BIG(string s, int a[]){int len = s.size();for(int i = 1; i <= len; i++){a[i] = s[len - i] - '0';}a[0] = len;
}void i2BIG(int n, int a[]){int cur = 0;while(n > 0){cur++;a[cur] = n % 10;n /= 10;}if(cur == 0) cur++;a[0] = cur;
}void printBIG(int a[]){int len = a[0];for(int i = len; i > 0; i--){cout << a[i];}cout << endl;
}void addBIG(int x[], int y[], int z[]){z[0] = max(x[0], y[0]);				// 先写出有效长度for(int i = 1; i <= z[0]; i++)		// 对应位求和z[i] = x[i] + y[i];for(int i = 1; i <= z[0]; i++){		// 处理进位z[i + 1] += z[i] / 10;z[i] %= 10;if(z[z[0] + 1] != 0)			// 处理最高位进位, 更新有效位数z[0]++;}
}
http://www.dtcms.com/wzjs/99989.html

相关文章:

  • 量品定制合伙人360优化大师下载官网
  • 交流平台网站怎么做搜索引擎在线观看
  • 东莞网站推广推广软件百度网站客服
  • 做网站的公司 洛阳推广合作
  • 中捷贴吧上海谷歌seo
  • 张家港高端网站建设百度云搜索引擎入口盘多多
  • 大气学校网站模板站长工具seo综合查询全面解析
  • 北京 网站设计苏州seo培训
  • 营销型网站测评方法商丘优化公司
  • 个人做游戏下载网站侵权吗市场调研报告范文2000
  • 做网站和做产品南通百度网站快速优化
  • 专门做外贸网站有哪些微信公众号软文怎么写
  • 深圳石岩网站建设广州从化发布
  • 广东省政府集约化网站建设谷歌推广外贸建站
  • 订阅号做影视网站自己如何优化网站排名
  • 西安做网站魔盒最新消息新闻头条
  • 做网站维护难吗网站服务费一年多少钱
  • 信息化建设网站如何搭建个人网站
  • 网站qq号获取seo网站内容优化
  • 如何用vs2012做网站重庆百度推广seo
  • 福建省建设厅网站职业资格企业网站推广的方法
  • 苏州手机网站建设公司网络推广培训班哪家好
  • 创做网站如何做网页制作
  • 400全国服务热线代理顺德手机网站建设平台宣传推广方案
  • 郑州餐饮加盟网站建设关键词排名优化是什么意思
  • wordpress 登陆跳转城市分站seo
  • 建设个人网站用什么软件好独立站怎么建站
  • 上海网页制作找哪家青岛百度快速优化排名
  • 电子商务平台(网站)建设方式谷歌seo网站优化
  • 分销平台网站建设开发网站需要多少钱