乘二号阵列(Multiplying two number arrays)

2019-10-31 01:35发布

谁能告诉我如何乘两个数字阵列使用C? 数阵列基本上是由包含数字两个字符串的。 如:123456和132465。

编辑:我有两个字符串S1 = "123456"S2="132546" 然后我转换这两个字符串到整数的数组,即INT IS1 [6]和IS2 [6],使得

IS1[1] = 1, IS1[2] = 2......

IS2[1] = 1, IS2[2] = 3.....

现在,我必须mulitply这两个arrrays。 请帮忙。

Answer 1:

目前尚不清楚你要乘什么。 如果您需要乘两个空的终止字符串char[]你可以将它们转换为int与价值观atoi

int result = atoi(str1) * atoi(str2);


Answer 2:

如果你想使用的纸张和铅笔算术,不知道该怎么做,这里是举例说明 。



Answer 3:

我只是编写一个简单的程序乘用算法长乘法存储在2号线在文件中的两个号码。 它可以乘两个数字,其在对方超过十亿数

例:

            23958233
            5830 ×
         ------------
            00000000  ( =      23,958,233 ×     0)
           71874699   ( =      23,958,233 ×    30)
          191665864   ( =      23,958,233 ×   800)
         119791165    ( =      23,958,233 × 5,000)

源代码:

请检查并给予您的评论http://code.google.com/p/juniormultiply/source/browse/#svn/trunk/src



Answer 4:

如果你的数字是足够小,它们解析成整数( atoi )。

如果它们太大,无法进入整数:

  • 使用库如GMP

  • 或用铅笔和纸的算法,但你会被重新发明轮子。



Answer 5:

好吧,如果你想生成包含乘法的数组,你可以使用:

int *a, *b, *c; // pointers to arrays of size n
for (unsigned i=0;i<n;++i)
  c[i] = a[i] * b[i];

如果你想要的内积,这是你如何能做到这一点:

int *a, *b; // pointers to arrays of size n
int res = 0;
for (unsigned i=0;i<n;++i)
  res += a[i] * b[i];

如果像以前的答案表明,你想要的是治疗的两个数组中的数字,你可以使用的atoi()所提到的功能。



Answer 6:

如果它是一个真实的项目,做了转换。

如果是这种算法的锻炼,根据笔和纸的方法做多重循环。



文章来源: Multiplying two number arrays