求解2个数的乘积.txt

来自「c语言的一些常见的算法以及思考和改进的文章,写的很不错,花费了很大的精力从网络了」· 文本 代码 · 共 46 行

TXT
46
字号
求解2个数的乘积[原创] 
两个数相乘,大概从小学就学过了,列一个竖式,求出很多中间结果,然后再把这些中间结果移位相加。如345与345相乘,竖式如下:

                     345
                × 345
                   ------
                  1725
                1380
              1035
               --------
              119025

其实,a和b相乘用公式来表示为ab=a∑bj10j=∑a(bj10j)。实现这个算法的程序如下:

#i nclude <conio.h>

long product(long a,long b)/*to compute the product of two digitals*/
{
   long result=0;
   int s=1;
   do{
      result+=a*s*(b%10);
      s=s*10;
      b=b/10;
   }while(b);
   return result;
}

void main()
{
   long a,b;
   long result;
   printf("Please input two digital....\n");
   scanf("%ld %ld",&a,&b);
   result=product((long)a,(long)b);
   printf("The initial digital is %8ld,%6ld\n",a,b);
   printf("The product of them is:%8ld\n",result);
   if(result==a*b)
      printf("OK\n");
   else
      printf("ERROR\n");
}

当然,两个数相乘远远不用这么麻烦,直接使用乘法运算符就可以了,这里我只是说明一个程序设计的思路。见笑了。
 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?