高精度算法:乘法1 高精度数乘以单精度数

这是高精度算法乘法的第一节,高精度算法的高精度数乘以单精度数
实验案例:
输入:
111111111111111111111111111113
3
输出:
333333333333333333333333333339

代码示例:
int main()
{
string s="";
int a[250]={0};
int b=0;
cin>>s>>b;
for(int i=0;i<s.size();i++)
{
a[i]=s[s.size()-i-1]-'0';
}
for(int i=0;i<s.size();i++) //这个是依次乘以单精度数,再将其存入数组中
{
a[i]=a[i]*b;
}
for(int i=0;i<s.size()+4;i++)
{
if(a[i]>=10)
{
a[i+1]=a[i+1]+a[i]/10;
a[i]=a[i]%10;
}
}
int index;
for(int i=s.size()+4-1;i>=0;i--) //为了判断最高数位到哪一位,+4-1的思想要理解,这里容易搞不懂
{
if(a[i]!=0)
{
index=i;
break;
}
}
for(int i=index;i>=0;i--)
{
cout<<a[i];
}
system("pause");
return 0;
}

多精度数据和单精度数据的相乘进位方法和前面的加法类似,进位方法值得借鉴。
明天把多精度数据的乘法第二部分看完就开始写老师布置的作业了。

posted @ 2025-07-07 21:34  暗神酱  阅读(14)  评论(0)    收藏  举报