小编Cha*_*201的帖子

乘以最多20个30位数字

我被赋予了一个任务,可以将多达20个数字乘以30个数字.我想出了一个算法,通过在具有二次复杂度的两个循环中输入两个数字的数字,将两个数字乘以30位数.(我认为接近30位数的最佳方法是将数字的数字存储在具有20个数字的2D整数数组中,并且每个数字中的每一个都有30个空闲插槽来填充这些插槽中的数字)结果将存储在30位数组.现在这里是我的问题和问题:

  1. 如何一次乘以超过2位数的30位数?我应该使用哪种循环?我想出了如何只乘以2个30位数字.

  2. 从你的用户那里得到你想要数字的数字是另一个问题,比如在获取数字时你必须知道这些数字中的每一个都有最多30个数字来填充,如果我想从用户那里得到数字52我不要输入52和28之后的零,就像52本身一样:

输入:520000000000000000000000000000错误

输入:52是正确的,如果我们没有在52本身之后输入28个零.

这是我的算法将2个数字乘以30位数:

for (i = 29; i >= 0; i--)
 {
    for (j = 29, carry_in = 0; j >= 0; j--) 
    {
        n =number_1[i] * number_2[j] + result[i] + carry_in;
        carry_in = n / 10;
        result[i] = (n % 10);
    }
    result[i] += carry_in;
 }
Run Code Online (Sandbox Code Playgroud)

c loops

4
推荐指数
1
解决办法
1975
查看次数

标签 统计

c ×1

loops ×1