| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
新手!求救了!In Reply To:为什么一直说我Answer Wrong 呢?(1001题)结果都对的啊。。。 Posted by:jadeback at 2008-09-21 14:32:15 > #include <string>
> #include <iostream>
> #include <vector>
> using namespace std;
> void chen(string chenshu ,string beichenshu,string &rs)
> {
> int j=0;
> int csize=chenshu.size();
> int bsize=beichenshu.size();
> int total=csize+bsize;
> int *a=new int[csize];
> int *b=new int[bsize];
> int *res=new int[total];
> for(int i=0;i!=total;i++)
> {
> res[i]=0;
> }
> for(unsigned int i=0;i!=chenshu.size();i++)
> {
> if(isdigit(chenshu[i]))
> {
> a[j]=chenshu[i]-48;
> j++;
> }
> }
> j=0;
> for(unsigned int i=0;i!=beichenshu.size();i++)
> {
> if(isdigit(beichenshu[i]))
> {
> b[j]=beichenshu[i]-48;
> j++;
> }
> }
> for(int bpos=bsize-1;bpos>=0;bpos--)
> {
> int respos=total-(bsize-bpos-1);
> for(int apos=csize-1;apos>=0;apos--)
> {
> int jinwei=(a[apos]*b[bpos])/10;
> int benwei=(a[apos]*b[bpos])%10;
> res[respos-(csize-apos)]=benwei+res[respos-(csize-apos)];
> res[respos-(csize-apos)-1]=jinwei+res[respos-(csize-apos)-1];
>
> }
>
> }
> for(int i=total-1;i>0;i--)
> {
> int tmp;
> tmp=res[i]/10;
> if(tmp>0)
> {
> res[i-1]=res[i-1]+tmp;
> res[i]=res[i]%10;
> }
> }
> /////////////////////////
> rs.clear();
> char tran[2];
> for(int m=0;m!=total;m++)
> {
> sprintf(tran,"%d",res[m]);
> rs=rs+tran;
> }
> //////////////////////////////
> while(rs.find_first_of("0")==0)
> {
> rs.erase(0,1);
> }
> }
>
>
> void result(string &base,int pw,string &res)
> {
> unsigned int pos=base.find('.');
> if(pos!=string::npos)
> {
> base.erase(pos,1);
> res=base;
> for(int i=0;i<pw-1;i++)
> {
> chen(res,base,res);
> }
> int ipos=res.size()-((5-pos)*pw);
>
> if(ipos<0)
> {
> int num=0-ipos;
> res.insert(0,num,'0');
> res.insert(0,1,'.');
>
> }
> else
> {
> res.insert(ipos,1,'.');
> }
> while(res.find_last_of("0")==(res.size()-1))
> {
> res.erase((res.size()-1),1);
> }
> }
> else
> {
> res=base;
> for(int i=0;i<pw-1;i++)
> {
> chen(res,base,res);
> }
> }
> }
> int main()
> {
> string base;
> int pw;
> int num=0;
> string res;
> vector<string> show;
> while(cin>>base>>pw)
> {
> result(base,pw,res);
> cout<<res<<endl;
> res.clear();
> cin.clear();
> }
>
>
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator