大数相加
来源:互联网 发布:mac lol 国服下载 编辑:程序博客网 时间:2024/06/06 09:36
我们都知道计算a+b,如果两个数非常的大,以至于long型也无法表示的时候,这个时候怎么办了,例如我要计算:12454541234554333334546533425324455+34213432354353245541312425654433556553233=?
或者个大的数相加的时候怎么办啊!
这个时候自然会想到数组了,源码如下:
#include <iostream>#include <string>using namespace std;void add(char a[],char b[],char ans[]){ int i,j,k,up,x,y,z,l; char *c; if (strlen(a)>strlen(b)) l=strlen(a)+2; else l=strlen(b)+2; c=(char *) malloc(l*sizeof(char)); i=strlen(a)-1; j=strlen(b)-1; k=0;up=0; while(i>=0||j>=0) { if(i<0) x='0'; else x=a[i]; if(j<0) y='0'; else y=b[j]; z=x-'0'+y-'0'; if(up) z+=1; if(z>9) {up=1;z%=10;} else up=0; c[k++]=z+'0'; i--;j--; } if(up) c[k++]='1'; i=0; c[k]='\0'; for(k-=1;k>=0;k--) ans[i++]=c[k]; ans[i]='\0'; free(c);}int main(void){ char a1[1000],a2[1000]; char ans[1000]; cin>>a1>>a2; add(a1,a2,ans); cout<<a1<<" + "<<a2<<" = "<<ans<<endl; return 0;}
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 大数相加
- 解决IE8 Session共享问题
- 1--消息队列(报文队列)实践到内核--消息队列的创建 .
- 2--消息队列(报文队列)实践到内核--消息的发送
- 3--消息队列(报文队列)实践到内核--消息的接收 .
- 4--消息队列(报文队列)实践到内核--消息队列的控制
- 大数相加
- 1--共享内存的实践到内核--共享内存的创建
- java反射详解
- 2--共享内存的实践到内核--共享内存的映射
- MarshalAs
- Displaying the current Vim environment
- 非阻塞Connect对于select时应注意问题(转)
- html转义字符
- 罗素:欲望在政治上的重要性