#include <stdio.h>
#include <limits.h>
#include <math.h>
#include <string.h>
void StringMul(char *num1,char *num2)
{
     char number1[100];
     char number2[100];
     strcpy(number1,num1);
     strcpy(number2,num2);

 int i1,i2;

 int it;
 int m;
 int sum=0;

 char *s;
 char *d;
 int pn[200]={0,};

 s=number1;
 d=s;
 while(*d++);
 i1=d-s-1;
 s=number2;
 d=s;
 while(*d++);
 i2=d-s-1;
 
 it=i1>i2?i1:i2;
 m=i1>i2?it-i2:it-i1;

 if(i2>i1)
 {
      for(int l=i1-1;l>=0;l--)
      {
       number1[l+m]=number1[l]; 
      }
      for(int l=0;l<m;l++)
      {
       number1[l]='0';
      }
      number1[i1+m]=0;
    }
 else
 {
      for(int l=i2-1;l>=0;l--)
      {
           number2[l+m]=number2[l];
      }
      for(int l=0;l<m;l++)
      {
           number2[l]='0';
      }
      number2[i2+m]=0;
 }


 for(int i=0;i<it;i++)
 {
      number2[it*2-2-i]=number2[it-i-1];
      number1[it*2-2-i]=number1[it-i-1];
 }
 for(int i=0;i<it-1;i++)
 {
      number2[i]='0';
      number1[i]='0';
 }

 
     for(int i=0;i<it*2-1;i++)
     {
          int p=(int)pow((double)10,i);
          for(int j=0;j<=i;j++)
          {
               pn[i]+=(number2[(it*2-2)-j]-'0')*(number1[(it*2-2)-i+j]-'0');
          }
     }
     

 for(int i=0;i<it*2-1;i++)
 {
      if(pn[i]>9){pn[i+1]+=pn[i]/10; pn[i]=pn[i];}
 }
 

 int i=it*2-2;
 while(pn[i]==0){i--;}
 for(;i>=0;i--)
  printf("%d",pn[i]);
 
 
}

void main()
{
 
 StringMul("820045672054561123144142","18818857525235801287252353");
 printf("\n");
}

존나 쉽내요