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

纠结了好几天了,不知道哪里错了啊。。。

Posted by thesky102 at 2012-02-21 09:16:49 on Problem 1001
它给的数据一组一组输入是没错的(输入一组后重新编译),但是先输入第二组,再输入第一组,再输入第二组这时就有问题了,数组我也重置了,不知道哪里的变量什么的被占用了。。。

#include<iostream>
#include<string>
using namespace std;
int n=10000,n1,m,m1;
int a[10000],b[10000],c[10000];
void mul(int a[],int b[],int c[])//a存放中间结果,b存放底数,c存放最终结果 
{
     int i,j,k;
     for(i=0;i<n;i++)  c[i]=0;   //C每次循环均置零 
     for(i=0;i<n1*m;i++)         //外层循环次数 
        for(j=0;j<n1;j++)
            c[i+j+1]=a[i]*b[j]+c[i+j+1];
     k=n-1;                       //去除后尾没用的零 
     while(c[k]==0)    k--;
     for(;k>0;k--)                 //得到一次相乘的结果 
     {
         c[k-1]=c[k-1]+c[k]/10;
         c[k]=c[k]%10;          
     }
     for(i=0;i<n;i++)   a[i]=c[i];
}
int main()
{
    n=10000;
    int i,j,k; 
    string r;
    bool flag;
    int mark,num,x;
    while(cin>>r>>m)
    {
      flag=false;
      m1=m;
      mark=0;
      for(k=0;k<n;k++)   a[k]=0; 
      for(i=0,j=0;i<r.size();j++,i++)
      {    
          if(r[i]!='.')  a[j]=r[i]-48;
          else           {mark=i;j--;flag=true;}      //mark记录小数点的位置,flag记录是否出现小数点 
      }
      if(flag!=true)      mark=j;
      for(k=0;k<n;k++)   {b[k]=a[k];c[k]=a[k];}                     //给b c 赋值                
      n1=j;
      num=m*mark;                                      //整数位数 
      while(m1!=1)                                     //相乘次数 
      {     
          mul(a,b,c);
          m1--;   
      }
      n=10000;                                         //去除首尾没用的零 
      while(c[n-1]==0&&n!=num)    n--;
      k=0;
      while(c[k]==0&&k!=num)      k++;
      if(k>=n)      {cout<<0;continue;} 
      for(;k<num;k++)
          cout<<c[k];
      if(k<n) 
          cout<<'.';
      for(k=num;k<n;k++)
          cout<<c[k];
    }
    return 0; 
}

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