Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void lerVetor(int v[]){
- int i=0;
- do{
- scanf("%d", &v[i]);
- i++;
- }while(v[i-1]!=-1);
- }
- void imprimirVetor(int v[]){
- int i=0;
- while(v[i]!=-1){
- printf("%d", v[i]);
- i++;
- }
- printf("\n");
- }
- void inverter(int v[]){
- int i=0;
- int j=0;
- int aux[102];
- while(v[i]!=-1){
- i++;
- }
- i--;
- while(i>=0){
- aux[j]=v[i];
- i--;
- j++;
- }
- for(i=0;i<j;i++){
- v[i]=aux[i];
- }
- v[i]=-1;
- }
- void somarVetor(int v1[], int v2[], int soma[]){
- int i,j,k;
- int care=0;
- i=j=k=0;
- while(v1[i]!=-1 || v2[j]!=-1){
- if(v1[i]!=-1 && v2[j]!=-1){
- soma[k]=(v1[i]+v2[j]+care)%10;
- care=(v1[i]+v2[j]+care)/10;
- i++;j++;k++;
- }
- else if(v2[j]==-1){
- soma[k]=(v1[i]+care)%10;
- care=(v1[i]+care)/10;
- i++;
- k++;
- }
- else if(v1[i]==-1){
- soma[k]=(v2[j]+care)%10;
- care=(v2[j]+care)/10;
- j++;
- k++;
- }
- }
- if(care==1){ soma[k]=1; soma[k+1]=-1;}
- else soma[k]=-1;
- }
- void copiarVetor(int v1[], int v2[], int n){
- int i;
- for(i=0;i<n;i++) v1[i]=v2[i];
- }
- void zerarVetor(int v[], int n){
- int i;
- for(i=0;i<n;i++) v[i]=0;
- }
- void multiplicar(int v1[], int v2[], int mult[]){
- int i, j;
- int care=0;
- int aux1[102]={0}, aux2[102]={0};
- for(j=0;v1[j]!=-1;j++){
- care=0;
- if(v1[j]==0) continue;
- for(i=0;v2[i]!=-1;i++){
- aux1[j+i]=(v1[j]*v2[i]+care)%10;
- care=(v1[j]*v2[i]+care)/10;
- }
- if(care!=0) { aux1[j+i]=care; aux1[j+i+1]=-1;}
- else aux1[j+i]=-1;
- if(j>0) copiarVetor(aux2, mult,102);
- else { aux2[0]=0; aux2[1]=-1; }
- somarVetor(aux1, aux2, mult);
- zerarVetor(aux1, 100);
- zerarVetor(aux2, 100);
- }
- }
- int main(){
- int n1[51]={0}, n2[51]={0};
- int soma[102], mult[102]={0};
- lerVetor(n1);
- lerVetor(n2);
- imprimirVetor(n1);
- imprimirVetor(n2);
- inverter(n1);
- inverter(n2);
- somarVetor(n1, n2, soma);
- inverter(soma);
- imprimirVetor(soma);
- multiplicar(n1,n2,mult);
- inverter(mult);
- imprimirVetor(mult);
- return 0;
- }
Add Comment
Please, Sign In to add comment