Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:求大神帮我看看啊 WA n次了 不知道错在哪= =

Posted by abcdefu at 2022-07-23 22:49:12 on Problem 1001
In Reply To:求大神帮我看看啊 WA n次了 不知道错在哪= = Posted by:a4423329 at 2015-11-24 21:43:50
使用命名空间 std > #include <iostream> > #include <string> > #include <cstring> > #include <vector> > #include <algorithm> >; >字符串 power_fish(string R,int n); > int main() > { > string R; > int n; > while(cin>>R>>n) > { > string s; > s=power_fish(R,n);> int len=s.size();> if(len==1) > { > cout<<s; > cout<<endl; > } > else if(s[0]=='0'&s[1]=='.') > { > s=s.substr(1,s.size()); > cout<<s; > cout<<endl; > } > else > cout<<s;> cout<<endl;> } >系统(“PAUSE”);>返回 0;> > } > string power_fish(string R,int n) > { > string biao=“0123456789”; > //string qq=R; > int accout1=-1; > if(n==0) > { > string s=“1”; > return s; > } > for(int i=0;i<R.size();++i)//判断小数点位置 > { > if(R[i]=='.') > accout1=i; > } > > while(accout1==0&R[R.size()-1]=='0') > { > > R=R.substr(0,R.尺寸()-1);> if(R.size()==1) > break;> } > > while(accout1!=0&&R[R.size()-1]=='0') > { > if(accout1==-1) > break; > R=R.substr(0,R.size()-1); > if(R.size()==1) > break; > } > > if(accout1==1&R.size()==2) > { > R=R.substr(0,R.size()-1); > accout1=0; > } > if(R[R.size()-1]=='.') > { > R=R.substr(0,R.尺寸()-1);> } > while(accout1==0&&R.size()!=0) > { > int i=0; > if(R[i]==0) > { > R=R.substr(1,R.size()); > } > else > { > break; > } > } > if(R.size()==0) > { > string s=“0”; > return s; > } > > while(R[0]=='0'&R.size()!=1) > { > R=R.substr(1,R.尺寸());> } > > if(R[0]=='0'&R.size()==1) > { > string s=“0”; > return s; > } > > vector <string> sum(n);>和[0]=R;> accout1=-1;> for(int i=0;i<R.size();++i)//判断小数点位置 > { > if(R[i]=='.') > accout1=i; > } > > int n1=R.size();/乘数的长度 > int t1_r=accout1;/记录小数点的位置 > > int t2_r=R.size()-t1_r-1;//记录小数的个数 > int t3_r=R.size()-1;//输入的数中除去小数点的个数 > if(t1_r==-1) > { > t2_r=0; > t3_r=R.size(); > } > > //string *s=new string[t3_s];> for(string::iterator it=R.begin();it!=R.end();++it)//将string中的小数点去除,好进行计算 > { > if(*it=='.') > { > R.erase(it); > } > } > > vector<int> result;> vector<char>result1;> int L=0;//记录已经乘法的次数 > > > while((L+1)<n) > { > int n2=sum[L].size();//sum的长度 > int accout2=-1; > for(int i=0;i!=n2;i++)/记录sum中小数点位置 > { > if(sum[L][i]=='.') > { > accout2=i; > break; > } > } > > int t1_s=accout2;//记录小数点的位置 > int t2_s=sum[L].size()-t1_s-1;/记录小数的个数 > int t3_s=sum[L].size()-1;/输入的数中除去小数点的个>if(t1_s==-1) > { > t2_s=0; > t3_s=sum[L].size(); > } > > int m=t2_r+t2_s;//记录当前乘法的乘数与被乘数一共有的小数点位数 > vector<string> s(t3_r);//生成进行乘法运算时进行的次数的字符串数组 > > for(string::iterator it=sum[L].begin();it!=sum[L].end();++it) > { > if(*it=='.') > { > sum[L].erase(it);//将um中的小数点删除 > } > } > > > > for(int i=t3_r-1;i>=0;--i)//sum*R的每一位的结果在*s中存储 > { > int temp1=0;//记录进位 > for(int j=t3_s-1;j>=0;--j) > { > int temp=0; > temp=(sum[L][j]-48)*(R[i]-48)+temp1;//要将符号对应的数字转化成int型的数字 > if(temp<=9) > { > s[i].push_back(biao[temp]); > temp1=0; > //s[i][j]=biao[temp]; > } > else > { > temp1=temp/10; > s[i].push_back(biao[temp%10]);//赋值不成功 >?j==0&&(temp>9)) > { > s[i].push_back(biao[temp1]); > } > } > } > reverse(s[i].begin(),s[i].end());//将乘数的结果反转 > for(int p=0;p<t3_r-i-1;++p)//利用乘数的运算法则,进行移位处理。> s[i].push_back(biao[0]);> reverse(s[i].begin(),s[i].end());> } > > for(int i=t3_r-1;i>=0;--i)//是每一行都进行相加,使多余为为> { > for(int j=s[i].size();j<s[0].size();++j) > { > s[i].push_back(biao[0]); > } > } > > int reg,reg1;//reg1记录进位数 求和 > reg=1=0;> for(int j=0;j<s[0].size();++j)//对齐相加 > { > int reg=0; > for(int i=t3_r-1;i>=0;--i) > { > reg+=s[i][j]-48;//符号转化为数字 > } > reg=reg+reg1; > if(reg<=9) > { > result.push_back(reg); > reg1=0; > } > else > { > reg1=reg/10; > reg=10; > result.push_back(reg); > } > if(j==s[0].size()&®1!=0) > { > result.push_back(reg1); > } > > } > > //reverse(result.begin(),result.end());> if(m!=0) > { > if(m>result.size()) > { > for(int ix=0;ix<result.size();++ix) > { > result1.push_back(biao[result[ix]]); > } > for(int ix=result.size();ix<m;++ix) > { > result1.push_back('0'); > } > result1.push_back('.'); > } > else > { > for(int ix=0;ix<=result.size();++ix)//插入'.'符号进去 > { > > > if(ix<m) > { > result1.push_back(biao[result[ix]]); > } > else if(ix>m) > { > result1.push_back(biao[result[ix-1]]); > } > else > { > result1.push_back('.'); > > } > } > } > } > else > { > for(int ix=0;ix<result.size();++ix) > result1.push_back(biao[result[ix]]); > > } > reverse(result1.begin(),result1.end());> ++L;> for(int ix=0;ix<result1.size();++ix) > { > sum[L].push_back(result1[ix]); > } > result.erase(result.begin(),result.end());> result1.erase(result1.begin(),result1.end());> } >字符串 sum1=sum[n-1];>返回总和1;> } 

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator