Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void le_vetor (int vetor[]) {
- int i=0, aux=0;
- do {
- scanf (" %d", &aux);
- vetor[i]=aux;
- i++;
- } while (aux!=-1);
- }
- void inv_vetor (int vetor[]) {
- int i=0, tam_vetor=0, j, vetor_aux[100];
- while (1) {
- if (vetor[i]!=-1)
- tam_vetor++;
- else
- break;
- i++;
- }
- for (i=0; i<100; i++) {
- vetor_aux[i]=vetor[i];
- }
- i=0;
- for (j=tam_vetor; j>=0; j--) {
- vetor[i]=vetor_aux[j];
- i++;
- }
- }
- void print_vetor_m_um (int vetor[], int tam_vetor) {
- int i;
- for (i=tam_vetor; i>=0; i--) {
- if (vetor[i]!=-1)
- printf ("%d", vetor[i]);
- }
- printf ("\n");
- }
- void print_vetor_zero (int vetor[], int tam_vetor) {
- int i=tam_vetor-1;
- while (1) {
- if (vetor[i]!=0)
- break;
- i--;
- }
- while (i>0) {
- printf ("%d", vetor[i]);
- i--;
- }
- printf ("\n");
- }
- void soma_vetor (int vetor1[], int vetor2[], int vetor_soma[]) {
- int i, aux=0;
- for (i=0; i<100; i++) {
- if (vetor1[i]!=-1 && vetor2[i]!=-1) {
- vetor_soma[i]=(vetor1[i]+vetor2[i]+aux)%10;
- if (vetor1[i]+vetor2[i]+aux>9)
- aux=1;
- else
- aux=0;
- }
- else if (vetor1[i]!=-1 && vetor2[i]==-1) {
- vetor_soma[i]=(vetor1[i]+aux)%10;
- if (vetor1[i]+aux>9)
- aux=1;
- else
- aux=0;
- }
- else if (vetor1[i]==-1 && vetor2[i]!=-1) {
- vetor_soma[i]=(vetor2[i]+aux)%10;
- if (vetor2[i]+aux>9)
- aux=1;
- else
- aux=0;
- }
- else if (vetor1[i]==-1 && vetor2[i]==-1 && aux==1) {
- vetor_soma[i]=1;
- aux=0;
- }
- }
- }
- int main() {
- int i, j, k, aux=0, n1[100], n2[100], produto[100], soma[100], memo[100], pre[100];
- for (i=0; i<100; i++) {
- n1[i] = -1;
- }
- for (i=0; i<100; i++) {
- n2[i] = -1;
- }
- for (i=0; i<100; i++) {
- soma[i] = 0;
- }
- for (i=0; i<100; i++) {
- produto[i] = 0;
- }
- le_vetor(n1); inv_vetor(n1);
- le_vetor(n2); inv_vetor(n2);
- soma_vetor(n1,n2,soma);
- print_vetor_m_um(n1,99);
- print_vetor_m_um(n2,99);
- print_vetor_zero(soma,100);
- for (j=0; j<100; j++){
- if (n2[j]!=-1) {
- for (i=0; i<100; i++) {
- memo[i]=0;
- }
- i=j;
- k=1;
- while (1) {
- if (n1[k]!=-1) {
- memo[i]=(aux+(n1[k]*n2[j]))%10;
- aux=(aux+(n1[k]*n2[j]))/10;
- k++;
- i++;
- }
- else if (n1[k]==-1) {
- if (aux!=0)
- memo[i]=aux;
- aux=0;
- break;
- }
- }
- for (i=0;i<100;i++) {
- pre[i]=produto[i];
- }
- soma_vetor(memo,pre,produto);
- }
- }
- print_vetor_zero(produto,100);
- return 0;
- }
Add Comment
Please, Sign In to add comment