大数相乘
来源:互联网 发布:Mac版本好玩的网络游戏 编辑:程序博客网 时间:2024/06/05 18:39
#include <stdio.h>#include <stdlib.h>#include <string.h>#define N 100void printResult(int *C, int n){int i;for (i=0; i<n && C[i]==0; ++i) /*跳过头部的0元素*/;for (; i<n; ++i){printf("%d", C[i]);}printf("\n");}void multiply(char const *A, char const *B){int i, j, lenA, lenB, *C;if (A==NULL || B==NULL){return ;}lenA = strlen(A);lenB = strlen(B);C = (int *)malloc(sizeof(int)*(lenA+lenB));memset(C, 0, sizeof(C)*(lenA+lenB));for (i=lenB-1; i>=0; --i){for (j=lenA-1; j>=0; --j){C[i+j+1] += (B[i] - '0') * (A[j] - '0'); /*产生每一位未进位之前的结果,很巧妙,类似于优化的矩阵乘法*/}}for (i=lenA+lenB-1; i>=1; --i){C[i-1] += C[i] / 10; /*进位加到高位上*/C[i] %= 10;}printResult(C, lenA+lenB);free(C);C = NULL;}int main(void){char A[N], B[N];while (scanf("%s%s", A, B) != EOF){multiply(A, B);}return 0;}
0 0
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 大数相乘
- 第一篇博客
- java解析xml的几种方式
- Apache反向代理结合Tomcat集群来实现负载均衡(二)、原理分析
- Linux的inode
- linux重定向命令详解
- 大数相乘
- 编辑Spring的XML配置文件时MyEclipse不给提示
- 手机卫士第七天知识点
- java面向对象-jar包
- 大数浮点数加法
- iOS 画画板
- pycharm 3.4.1 安装
- [LeetCode]Remove Duplicates from Sorted Array
- FineUI Grid不显示数据解决方案