big_data_mul
来源:互联网 发布:centos设置不锁屏 编辑:程序博客网 时间:2024/06/09 21:01
#include<iostream>
#include<string>
using namespace std;
void AddTwoString(string &sum,string &tmp)
{
string s1(sum),s2(tmp),tmp1,result;
int step=0,m;
if(s1.size()<s2.size()) { tmp1=s1;s1=s2;s2=tmp1; }
string::reverse_iterator r1=s1.rbegin(),r2=s2.rbegin();
while(r2!=s2.rend())
{
m=(*r1-'0')+(*r2-'0')+step;
step=m/10;
result.push_back(m%10+'0');
r1++; r2++;
}
if(r1==s1.rend()&&step) result.push_back(step+'0');//!!!!!!!!!!!!
while(r1!=s1.rend())
{
m=(*r1-'0')+step;
step=m/10;
result.push_back(m%10+'0');
r1++;
}
tmp1="";
for(string::reverse_iterator r=result.rbegin();r!=result.rend();r++)
tmp1.push_back(*r);
sum=tmp1;
// cout<<s1<<"+"<<s2<<"="<<sum<<endl;
}
void MulTwoString(string &s1,string &s2,string &mul)
{
if(s1==""||s2=="") {cout<<"illegal input!"<<endl; return; }
for(string::iterator t1=s1.begin();t1!=s1.end();t1++)
if(!(*t1>='0'&&*t1<='9'))
{cout<<"s1 is illegal input!"<<endl; return; }
for(string::iterator t2=s2.begin();t2!=s2.end();t2++)
if(!(*t2>='0'&&*t2<='9'))
{cout<<"s2 is illegal input!"<<endl; return; }
string tmp,sum;
int step=0,jinwei,m,t;
if(s1.size()<s2.size()){tmp=s1;s1=s2;s2=tmp;}
// cout<<"after swap, s1="<<s1<<" s2="<<s2<<endl; //
for(string::reverse_iterator rt2=s2.rbegin();rt2!=s2.rend();rt2++)
{ tmp="";
m=(*rt2)-'0';
jinwei=0;
//t=0;
for(string::reverse_iterator rt1=s1.rbegin();rt1!=s1.rend();rt1++)
{
t=m*((*rt1)-'0')+jinwei;
jinwei=t/10;
tmp.push_back((t%10)+'0');
}
if(jinwei)tmp.push_back(jinwei+'0');
string tmp2;
for(string::reverse_iterator r2=tmp.rbegin();r2!=tmp.rend();r2++)
tmp2.push_back(*r2);
tmp=tmp2;
// cout<<"tmp="<<tmp<<endl;
if(sum=="") sum=tmp;
else{
int k=step;
while(k){ tmp.push_back('0'); k--; }
AddTwoString(sum,tmp);
}
step++;
}
mul=sum;
}
int main()
{
string s1,s2,mul;
//int step=0;
cout<<"enter two numbers:"<<endl;
cin>>s1;
cin.clear();
cin>>s2;
cout<<"s1="<<s1<<"\ns2="<<s2<<endl;
MulTwoString(s1,s2,mul);
if(mul!="")cout<<"s1*s2="<<mul<<endl;
return 0;
}
- big_data_mul
- 初级报表生成饼状图,条形图,柱状图
- 解决新建Support7Demos的sample时出现编译错误和运行报错出现的问题
- test
- Raphael.js API之Paper.image(),Element.animate()
- C#委托机制
- big_data_mul
- Windows 8 文件选择器(FileOpenPicker,FileSavePicker,FolderPicker)
- The requested URL could not be retrieved/ TCP_DENIED/403
- 不只看球 解析巴西世界杯背后的显示“因素”
- JAVA数组的equals方法
- VLC命令行参数详解
- VirtualBox+CentOS6.5安装增强功能包 - Building the main Guest Additions module [失败]
- pageX,clientX,offsetX,layerX的区别
- 好的设计师VS糟糕的设计师