超长字符整数的相加(UCWEB 2010校园招聘笔试)
来源:互联网 发布:大学室友关系知乎 编辑:程序博客网 时间:2024/04/30 14:37
- /*****转帖请注明 原创于华南理工 吴泳添*****/
- #include <iostream>
- using namespace std;
- char * reverseOrderChar(char *a) //倒序输出字符串
- {
- int charLen = strlen(a);
- char *b = new char[charLen];
- for(int i = 0; i<charLen ; i++)
- {
- b[i] = a[charLen - i - 1];
- }
- b[charLen] = '/0';
- return b;
- }
- char * charNumPlus(char *a ,char *b ,int len,char *c)
- {
- a = reverseOrderChar(a); //先倒序,再相加
- b = reverseOrderChar(b);
- char *maxChar;
- int max,min;
- int wei, p=0;
- max = (strlen(a)/strlen(b)) ?strlen(a):strlen(b);
- min = (strlen(a)/strlen(b)) ?strlen(b):strlen(a);
- if (strlen(a)>=strlen(b)) //选出比较长的字符串
- maxChar = a;
- else
- maxChar = b;
- for (int i = 0 ; i < max ; i++)
- {
- if (i<min)
- {
- wei = (a[i]-'0') + (b[i]-'0')+ p;
- c[i] = wei%10 + '0' ;
- if (wei>=10)
- p = 1;
- else
- p = 0;
- }
- else
- {
- wei = (maxChar[i]-'0') + p;
- c[i] = ((maxChar[i]-'0') + p)%10+'0' ;
- if(wei >=10)
- p = 1;
- else
- p = 0;
- }
- }
- c[max] = p + '0' ;
- if (c[max]=='0')
- c[max] = '/0';
- else
- c[max+1] = '/0';
- c = reverseOrderChar(c);
- return c;
- }
- void main()
- {
- char *str1 = "9999999999999999999999999";
- char *str2 = "987422222222222222222";
- char *resultstr = new char[100];
- resultstr = charNumPlus(str1,str2,100,resultstr);
- cout<<resultstr<<endl;
- }
- /*****转帖请注明 原创于华南理工 吴泳添*****/
- 超长字符整数的相加(UCWEB 2010校园招聘笔试)
- 超长整数相加
- OJ------超长整数相加
- 华为测试 超长整数相加
- 百度2010校园招聘中的一道有意思的笔试题
- 2012校园招聘的一道笔试题目
- 乐其网络2015校园招聘笔试题——处理汉字字符的问题
- 超长正整数的相加
- 百度2010年校园招聘笔试题
- 阿里巴巴2010-2013校园招聘笔试题
- 阿里巴巴2010-2013校园招聘笔试题
- 2010网易校园招聘笔试题
- 校园招聘(笔试)
- 校园招聘--网易笔试
- 校园招聘--百度笔试
- Aonesoft校园招聘笔试
- 校园招聘笔试题
- 华为测试-两个超长整数相加
- 死了都要try--程序员之歌
- 解压tar包工具UntarUtil(2)
- 解压tar包工具UntarUtil(3)
- 解压tar包工具UntarUtil(4)
- Charset 和 Encoding 的区别是什么?(UCWEB笔试)
- 超长字符整数的相加(UCWEB 2010校园招聘笔试)
- 停车场管理(TP-LINK 2010年校园招聘),要求尽可能减少使用空间
- ant+delphi脚本
- 【转帖】『程序员』 [Java]向学JAVA的新人透点绝密!
- 《想法》
- 一个小错误,消耗4小时
- 基于递归的插入排序
- 部分消息相应注解
- 中兴郑州办事处面试