- 论坛徽章:
- 0
|
我的算法比较简单,用一个简单的例子,其实原理差不多:
char a[5];
char b[5]; //存放两个乘数
char result[10]; //存放结果
不说太多,不早了,直接上程序:
/*
* multiplication.c
*
* Created on: 2013年11月13日
* Author: root
*/
#include<stdio.h>
int main()
{
char a[5] = {'1','2','3','4','5'};
char b[5] = {'1','2','3','4','5'};
char res[10];
char p[5][5];
int i,j;
int buf = 0;
int add = 0;
int buf1 = 0;
for(i = 0;i < 5;i++)
{
for(j = 4;j >= 0;j--) //用a与b的每一位相乘,放进数组里
{
p[i][j] = (a[j]-'0') * (b[4-i] - '0');
buf1 = p[i][j];
p[i][j] = buf1%10 + buf;
if(p[i][j] > 9)
{
add = 1;
p[i][j] = p[i][j] -10 +'0';
}
else
{
add = 0;
p[i][j] = p[i][j] +'0';
}
buf = buf1/10 + add;
}
buf = 0;
}
for(i = 0;i < 5;i++)
{
for(j = 0; j < 5;j++)
{
printf("%c ",p[i][j]);
}
printf("\n" ; //打印出五个数组的内容
}
}
整合的过程比较简单就不写了,你们帮我看看这个算乘法怎么样?谢谢啊 晚安,各位
|
|