首页 > 分享 > 模拟数组(两位数乘法)

模拟数组(两位数乘法)

模拟数组(两位数乘法)

最新推荐文章于 2023-01-16 14:18:24 发布

千与千寻.i 于 2019-01-27 23:33:04 发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

#include<bits/stdc++.h>
using namespace std;
int fx(int A,int B)
{
    char a[100000]={0},b[100000]={0},s[1000000]={0};
    int jw=0;
    int k=0;
    while(A>0)    //将整数A中的各个位数字逆序存入字符数组a中 
    {
        a[k]=A%10+'0';
        A=A/10;
        k++;
    }
    k=0;
    while(B>0)    //将整数B中的各个位数字逆序存入字符数组b中 
    {
        b[k]=B%10+'0';
        B=B/10;
        k++;
    }
    //printf("%s n%sn",a,b);
memset(s,48,1000);//把数组从开始端变成48,共一千个
int si;
for(int i=0;i<strlen(a);i++)    //利用双层循环将a,b相乘结果存入s数组中 
    {   si=i;
        for(int j=0;j<strlen(b);j++)
        {
            int x=s[si]-'0';//因为第一次jw要+s[si]的时候 s[si]=0;
            s[si]=((a[i]-'0')*(b[j]-'0')+jw+x)%10+'0';
            jw=((a[i]-'0')*(b[j]-'0')+x+jw)/10;
            si++;
        }
        while(jw>0)    //当a[i]将b[j]中所有元素乘了一遍之后,若jw>0则直接将它存入下一个s[i]中 
        {   s[si]=jw%10+s[si];si++;jw/=10;}
    }
    for(int i=si-1;i>=0;i--)     
        printf("%c",s[i]);    //将A,B相乘的结果输出
    printf("n");
}
int main()
{
int A,B;
while(scanf("%d %d",&A,&B)!=EOF)
    {
        fx(A,B);
    }
return 0;
}

相关知识

模拟数组(两位数乘法)
任意两位数乘两位数速算方法:78×34=?你会速算吗#学浪计划
数组的练习
PHP第六天 数组的遍历
#乘法口诀 背完了,还要会熟练运用,做做同步练习题#一升二 #二年级数学 #表内乘法 #表内除法 #专项训练
第五十五题:将一个数组逆序输出。
使用字节数组创建String后通过getBytes()得到的数组与创建时不同
Python Leetcode(905.按奇偶排序数组)
杨辉三角形的之java二维数组的应用
宠物课堂中的学问

网址: 模拟数组(两位数乘法) https://m.mcbbbk.com/newsview472722.html

所属分类:萌宠日常
上一篇: 我想把这只狗的颜色调白一点,干净
下一篇: 蜀门XQ全攻略