13277번 - 큰 수 곱셈
#include
char u[300000]={0,};
char v[300000]={0,};
char answer[600001]={0,};
void reverse(char q[])
{
int l = strlen(q),i,temp;
for(i=0;i0;i++)
answer[i] = num%10+48;
num/=10;
}
reverse(answer);
void plus(char u[],char v[],char answer[])
int max;
int i;
int temp,carry=0;
max = strlen(u)>strlen(v)?strlen(u):strlen(v);
reverse(u);
reverse(v);
for(i=0;istrlen(v)?strlen(u):strlen(v);
reverse(u2);
reverse(v2);
for(i=0;ii;k--)
u2[k]+=9;
answer[i]+=10;
} // 큰수의 뺄샘
void mul(char u[],char v[],char answer[])
int m,i;
if(strlen(u)>strlen(v))
m = strlen(u);
else
m = strlen(v);
char *x = (char *)malloc(sizeof(char)*m);
char *y = (char *)malloc(sizeof(char)*m);
char *w = (char *)malloc(sizeof(char)*m);
char *z = (char *)malloc(sizeof(char)*m);
char *r = (char *)malloc(sizeof(char)*((m+2)*(m+2)+1));
char *p = (char *)malloc(sizeof(char)*((m+1)*(m+1)+1));
char *q = (char *)malloc(sizeof(char)*((m+1)*(m+1)+1));
char *x_y = (char *)malloc(sizeof(char)*(m+1));
char *w_z = (char *)malloc(sizeof(char)*(m+1));
char *p_q= (char *)malloc(sizeof(char)*2*m+4);
char *r_p_q = (char *)malloc(sizeof(char)*2*m+3);
char *p_r_p_q = (char *)malloc(sizeof(char)*4*m+8);
for(i=0;istrlen(u)+strlen(v)+1)
itoa2((atoi(u)*atoi(v)),answer);
return;
{ if(strlen(u)>=m/2)
for(i=0;i=m/2)
for(i=0;i
댓글을 작성하려면 로그인해야 합니다.
ttcoristory 1년 전
#include
#include
#include
#include
char u[300000]={0,};
char v[300000]={0,};
char answer[600001]={0,};
void reverse(char q[])
{
int l = strlen(q),i,temp;
for(i=0;i0;i++)
{
answer[i] = num%10+48;
num/=10;
}
reverse(answer);
}
void plus(char u[],char v[],char answer[])
{
int max;
int i;
int temp,carry=0;
max = strlen(u)>strlen(v)?strlen(u):strlen(v);
reverse(u);
reverse(v);
for(i=0;istrlen(v)?strlen(u):strlen(v);
reverse(u2);
reverse(v2);
for(i=0;ii;k--)
u2[k]+=9;
answer[i]+=10;
}
}
reverse(answer);
} // 큰수의 뺄샘
void mul(char u[],char v[],char answer[])
{
int m,i;
if(strlen(u)>strlen(v))
m = strlen(u);
else
m = strlen(v);
char *x = (char *)malloc(sizeof(char)*m);
char *y = (char *)malloc(sizeof(char)*m);
char *w = (char *)malloc(sizeof(char)*m);
char *z = (char *)malloc(sizeof(char)*m);
char *r = (char *)malloc(sizeof(char)*((m+2)*(m+2)+1));
char *p = (char *)malloc(sizeof(char)*((m+1)*(m+1)+1));
char *q = (char *)malloc(sizeof(char)*((m+1)*(m+1)+1));
char *x_y = (char *)malloc(sizeof(char)*(m+1));
char *w_z = (char *)malloc(sizeof(char)*(m+1));
char *p_q= (char *)malloc(sizeof(char)*2*m+4);
char *r_p_q = (char *)malloc(sizeof(char)*2*m+3);
char *p_r_p_q = (char *)malloc(sizeof(char)*4*m+8);
for(i=0;istrlen(u)+strlen(v)+1)
{
itoa2((atoi(u)*atoi(v)),answer);
return;
}
else
{ if(strlen(u)>=m/2)
{
for(i=0;i=m/2)
{
for(i=0;i