实现高精度乘以单精度,就是很简单的啦,会一个数学计算方法就行了。
就像上面的图所示:
数组的每一位乘以都乘以单精度,这里的单精度只是用基础数据类型可以存储的数据,比如int,long long啦,然后进位就行了。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
enum
{
LENGTH = 1000+1,
};
int main(void)
{
//高精度数据
char zf1[LENGTH];
//单精度数据
int num2;
//输入
scanf("%s %d",zf1,&num2);
//逆序到整型数组
int len1 = strlen(zf1);
int num1[LENGTH] = {0};
int i;
for(i = 0;i< len1;i++)
{
num1[i] = zf1[len1-i-1] - '0';
}
//定义一个结果数组
int jg[LENGTH] = {0};
//开始乘法
for(i = 0;i < len1;i++)
{
jg[i] = num1[i]*num2;
}
//进位
for(i = 0;i < len1;i++)
{
if(jg[i]>=10)
{
jg[i+1]+=jg[i]/10;
jg[i] %= 10;
}
}
int pos = 0;
for(i = len1+5-1;i >= 0;i--)
{
if(jg[i]!=0)
{
pos = i;
break;
}
}
for(i = pos;i >= 0;i--)
{
printf("%d",jg[i]);
}
return 0;
}
这个是要比高精度加法减法简单一点的感觉。
大家用心体会。
代码敲多了,不禁就喜欢感慨万千!
一、人生如天气,可预料,但往往出乎意料。不管是阳光灿烂,还是聚散无常,一份好心情,是人生唯一不能被剥夺的财富。把握好每天的生活,照顾好独一无二的身体,就是最好的珍惜。
二、人生中,你要知是非以不辩为解脱,烦恼以忍辱为智慧,办事以尽力为有功,处人以真诚为品格。做人的方略是:把好自己的口,明了心中的事,干好手里的活,走好自己的路。
三、生命贵在知足,感恩。我们无权要求他有时候觉得生活还是挺难过的,那么可爱的自己,把人生活成了电视剧,就好像化了个妆,在外所有的行为都必须靠演技一样。
四、人,但是可以努力让自已的每一天都幸福快乐的活。好好爱自己,少些计较,学会不生气,让心开阔,多些理解和包容。好好爱自已,让幸福满溢,然后用自已的幸福和快乐去感染他人。