zjut 1027 大数的乘法

来源:互联网 发布:linux mv命令 移动多个 编辑:程序博客网 时间:2024/06/10 04:14
#include "iostream"#include "string"using namespace std;int main(){string str;int a, size, temp1;while (cin >> str >> a){string ans = "";if (a == 0)cout << "0" << endl;else{size = str.size();int temp2, temp3 = 0;//temp2为两个数相乘的积,temp3为进位数!for (int i = size - 1; i >= 0; i--){temp1 = str[i] - 48;//将字母转化为数字temp2 = temp1 * a + temp3;//相乘得出积if (temp2 >= 10){temp3 = temp2 / 10;//取进位数temp2 = temp2 % 10;//得出个位数}else//如果temp2没有大于10,就将进位数归0{temp3 = 0;}ans += (temp2 + 48);}if (temp3 != 0)//对最后一位相乘的数进行判断,如果有进位数的,需要加入字符串中,否则,不加!    ans += temp3 + 48;int length = ans.size();for (int j = length-1; j >= 0; j--)     cout << ans[j];cout << endl;}}}

 
原创粉丝点击