残留题目

来源:互联网 发布:加工中心学编程学校 编辑:程序博客网 时间:2024/04/28 18:38
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <string.h>


long long int m,n,h[20022],g[1000][1000],k[41],d,y;
int main()
{


char s[41];
int x1[41],r;
while(scanf("%s",s)!=EOF)
   {
        memset(h,0,sizeof(h));
        memset(g,0,sizeof(g));
        memset(k,0,sizeof(k));
   d=-1;
   scanf("%d",&n);     
  r=strlen(s);
   for(int i=0;i<strlen(s);i++)
     {
       if(s[i]=='.')
         { d=i; 
           // if(s[i-1]=='0')
//            { 
//                r=strlen(s)-2;
//                for(int i=1;i<strlen(s)-1;i++)
//               h[i-1]=s[i+1]-'0';
//                break;
//            }
                 y=0;
                 
           for(int t=strlen(s)-1;s[t]=='0';t--)
            y++;
            r=strlen(s)-y-1;
           for(int j=i;j<strlen(s)-y-1;j++)
            {
             if(s[j+1]=='0')
              {k[j]=0;
               h[j]=0;}
              k[j]=s[j+1]-'0';
              h[j]=s[j+1]-'0';
            }
           break;
         }
      if(s[i]=='0')
       {k[i]=0;
        h[i]=0;}
       k[i]=s[i]-'0';
       h[i]=s[i]-'0';
     }
//for(int i=0;i<r;i++)
//printf("%d",h[i]);




   for(int i=2;i<=n;i++)
     {
       for(int j=0;j<r+(r-1)*(i-2);j++)
         {
           for(int l=0;l<r;l++)
            g[j][l]=h[j]*k[l];//printf("%d %d%d\n",g[j][l],j,l);}
         }
     
       for(int q=0;q<r+(r-1)*(i-1);q++)
        {
          h[q]=0;
          for(int j=0;j<r+(r-1)*(i-2);j++)
            {
              for(int l=0;l<r;l++)
                {
                 if(q==j+l) h[q]=h[q]+g[j][l];//printf("%d%d%d\n",q,j,l);}
                }
            }
        }
     }
//      for(int i=0;i<strlen(k)+(strlen(k)-1)*(n-1);i++)
//     printf("%lld\n",h[i]);
    
    for(int i=r+(r-1)*(n-1)-1;i>0;i--)
     {
        if(h[i]>=10)
        {
            m=h[i]/10;
            h[i]=h[i]%10;
            h[i-1]=h[i-1]+m;
        }
    } // for(int i=0;i<strlen(k)+(strlen(k)-1)*(n-1);i++)
//     printf("%lld",h[i]);
     




   for(int i=0;i<r+(r-1)*(n-1);i++)
    {
     if((i==r+(r-1)*(n-1)-1-(r-d)*n))
     printf("%lld.",h[i]);
     else 
printf("%lld",h[i]);
    }
    printf("\n");
}
    system("pause");
    return 0;
}


原创粉丝点击