700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > c语言实现两个大数相乘

c语言实现两个大数相乘

时间:2018-06-14 15:32:51

相关推荐

c语言实现两个大数相乘

实现两个不限位数十进制整数的乘法函数,

demon

#include<stdio.h>#include<string.h>int main(){int i,j,z,k;int f_m1,f_m2,f_k;int carry;int result_int_len;int x_len,y_len;int x[101], y[101];char multiplier_x[101];char multiplier_y[101];char result_char[100000];int reuslt_int[100000];memset(result_char,0,sizeof(result_char));memset(reuslt_int,0,sizeof(reuslt_int));memset(multiplier_x,0,sizeof(multiplier_x));memset(multiplier_y,0,sizeof(multiplier_y));scanf("%s%s",multiplier_x,multiplier_y);x_len = strlen(multiplier_x);y_len = strlen(multiplier_y);for(i = 0; i < x_len ; i++){x[i] = multiplier_x[i] - '0';printf("===========x[%d] is %d\n",i,x[i]);}for(j = 0; j < y_len ; j++){y[j] = multiplier_y[j] - '0';printf("===========y[%d] is %d\n",j,y[j]);}f_m1 = x_len;for(i = 0; i < x_len ; i++){f_m1--;f_m2 = y_len;for(j = 0; j < y_len ; j++){f_m2--;z = x[f_m1] * y [f_m2];printf(" z is %d\n",z);reuslt_int[j+i] = z%10 + reuslt_int[j+i];k = j+i+1;printf("====k is %d | reuslt_int[j+i] is %d\n",k,reuslt_int[j+i]);if(reuslt_int[j+i] > 9)//判断是否需要进位{reuslt_int[j+i] = reuslt_int[j+i]%10;carry = j+i+1;reuslt_int[carry] = 1 + reuslt_int[carry];printf("[%d] reuslt_int[%d] is %d\n",__LINE__,i+j,reuslt_int[j+i]);while( 9 < reuslt_int[carry])//进位之后相加再判断是否需要进位{reuslt_int[carry] = reuslt_int[carry]%10;carry++;printf("||||=====carry is %d \n",carry);reuslt_int[carry] = 1 + reuslt_int[carry];}}if(z > 9)//判断是否需要进位{carry = j+i+1;reuslt_int[carry] = z/10 + reuslt_int[carry];printf("[%d] reuslt_int[%d] is %d\n",__LINE__,i+j,reuslt_int[carry]);while( 9 < reuslt_int[carry])//进位之后相加再判断是否需要进位{reuslt_int[carry] = reuslt_int[carry]%10;carry++;printf("[%d] reuslt_int[%d] is %d\n",__LINE__,i+j,reuslt_int[carry]);reuslt_int[carry] = 1 + reuslt_int[carry];}k = j+i+2;printf("k is %d\n",k);}}}f_k = k;for(i = 0; i < f_k ; i++)//位数反转{result_char[i] = reuslt_int[k-1] + '0';printf(" result_char[%d] is %d\n",i,result_char[i]);k--;}printf("===========%s \n",result_char);return 0;}

运行结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。