高精度长整型
- 算法题目
- 算法分析
- 代码实现
- 结果示例
算法题目
算法分析
其实这个问题很简单,但希望引起大家的重视~
先求会,再求精~
讲解视频链接:高精度长整型视频讲解
代码实现
#include<stdio.h>
#include<string.h>
int main()
{
long int multiplicand; //被乘数
char multiplier[256]; //乘数
int s[256]; //乘法结果
long int d=0; //进位 (初始结果为0)
long int b; //乘数每一位与被乘数相乘的结果
int n; //表示被乘数的位数
int i,j; //i表示乘法结果数组循环 j表示乘数位数循环
char temp; //过滤掉输入被乘数后的换行
printf("请输入被乘数:\n");
scanf("%ld",&multiplicand);
scanf("%c",&temp);
printf("请输入乘数:\n");
gets(multiplier);
n=strlen(multiplier); //求读取进来的字符串(乘数)的长度
for(i=0,j=n-1;i<n,j>=0;i++,j--)
{
b=(multiplier[j]-'0')*multiplicand+d;
s[i]=b%10;
d=b/10;
}
while(d!=0)
{
s[n]=d%10;
d=d/10;
n++;
}
for(i=n-1;i>=0;i--)
printf("%d",s[i]);
return 0;
}
结果示例
- 示例一
- 示例二
- 示例三
PS:大家感兴趣的也可以自己验证一下哦~
反正我的手机最后一个前面都是对的~
但是最后达不到这么多的精度哈哈哈~