大整数相乘------输出两个不超过100位的大整数的乘积
2014-09-13 19:39
543 查看
#include<iostream> #include<string.h> using namespace std; int main() { char ch[100]; char sh[100]; int ah[200]={0}; int bh[200]={0}; int gh[200]={0}; cin>>ch>>sh; int len1=strlen(ch); int len2=strlen(sh);//当做字符串读入 int i; for(i=len1-1;i>=0;i--) ah[len1-1-i]=ch[i]-'0';//逆序读入数组,左对齐 for(i=len2-1;i>=0;i--) bh[len2-1-i]=sh[i]-'0'; int temp,k,j; for(i=0;i<len1;i++) for(j=0;j<len2;j++) { temp=ah[i]*bh[j]; gh[i+j]+=temp; //注意:gh为结果存储地址,所以为i+j k=i+j; while(gh[k]>=10) //向前遍历直到没有进位完毕 { gh[k+1]+=(gh[k]/10); gh[k]%=10; k++; } } int flag=0; for(i=199;i>=0;i--) //从后往前输出,注意0的输出 { if(gh[i]!=0 || flag==1) { cout<<gh[i]; flag=1; } } cout<<endl; return 0; }
相关文章推荐
- 蓝桥杯题目 输入两个整数a和b,输出这两个整数的和。a和b都不超过100位。
- 华为2012校园招聘上机题——大数相乘,两个超过100位的大数相乘C语言
- 3、求两个大整数的相乘问题
- 链家笔试题--java实现两个大整数相乘的算法
- 微软面试题——整数升序数组、数M,输出和为M的两个数组元素
- 二、 编写函数int stat(int a[],int n,int c[][2])。a指向的数组中保存了由n个1位整数组成的数列(n为偶数)。函数从前至后依次将a数组中每两个相邻元素拼成一个不超过2位
- 1.输出一个整数的每一位。2. 编程实现: 两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- java程序计算两个大整数相乘
- Java任意两个大整数相乘
- 输入两个整数,将他们安有大到小的顺序输出。要求使用变量的引用
- 输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
- 第五周-C语言 输入两个正整数 输出正差值
- 两个64位整数相乘 取高64位的值
- 输入a和b两个整数,按先大后小的顺序输出a和b。(用指针变量处理)
- B.1给定两个正整数,求出两数的正差值并输出。
- 输出一个整数的每一位。两个int(32位)整数m和n的二进制表达中,有多少个位(bit)不同?
- 计161平日题目汇总--Problem E: 输入两个整数,进行四则运算并输出结果
- 两个大整数相乘 C++ 版本 源码
- 输入两个数后输出相乘的结果
- 求二进制序列中1的个数及奇偶序列+输出整数的每一位+两个数中多少个bit位不同