that_one_nigga_you_k

EP3

Jun 29th, 2021
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.17 KB | None | 0 0
  1. #include <stdio.h>
  2. #define TamMax 2021
  3.  
  4. using namespace std;
  5.  
  6. int algarismos(double i){
  7.    
  8.     int ret=0;
  9.  
  10.     while (i>1){
  11.         ret++;
  12.         i /=10;
  13.     }
  14.     return ret;
  15.  
  16. }
  17.  
  18. void somar(int *c, int *a, int *b, int tamA, int tamB){
  19.  
  20.     int tmnh;
  21.  
  22.     tmnh = (tamA>tamB)? tamA:tamB;
  23.    
  24.     for(int i = (tmnh-1); i>=0; i--){      
  25.  
  26.        
  27.         c[i]=a[i]+b[i];
  28.  
  29.         //printf(c[i]<<" ";
  30.     }
  31.  
  32.     printf("\n");
  33.  
  34.     for(int i = 0; i<tmnh; i++){
  35.         c[i+1]=c[i+1]+(c[i]/10);
  36.         c[i]= c[i]%10;
  37.  
  38.         //printf(c[i]<<" ";
  39.     }
  40.  
  41. }
  42.  
  43. void artribui(int val, int *num){
  44.     int dig = algarismos(val);
  45.  
  46.     for(int i = dig; i>=0 ; i--){               //aqui acontece as
  47.        num[dig-i] = val%10;                     //as aribuições de
  48.                                                 //de valores
  49.        val = val/10;
  50.    }
  51. }
  52.  
  53. void imprimeNumerao(int *num, int tamNum){
  54.  
  55.     for(int i = tamNum; i>=0;i--){
  56.         printf("%d", num[i]);
  57.     }
  58.  
  59. }
  60.  
  61. int criaNumerao(long int n, int *num){
  62.     int dig = algarismos(n);
  63.  
  64.    for(int i = dig; i>=0 ; i--){               //aqui acontece as
  65.        num[dig-i] = n%10;                     //as aribuições de
  66.                                                 //de valores
  67.        n = n/10;
  68.    }
  69.  
  70.     printf("\n");
  71.  
  72.     for(int i = dig; i>=0; i--){
  73.         printf("%d ", num[i]);
  74.     }
  75.  
  76.     printf("\n");
  77.  
  78.   return(dig);
  79.  
  80. }
  81.  
  82. int soma(int *a, int tamA, int *b, int tamB){
  83.     int tmnh;
  84.  
  85.     tmnh = (tamA>tamB)? tamA:tamB;
  86.  
  87.     for(int i = (tmnh-1); i>=0; i--){      
  88.  
  89.        
  90.         a[i]=a[i]+b[i];
  91.  
  92.         //printf(c[i]<<" ";
  93.     }
  94.  
  95.     printf("\n");
  96.  
  97.     for(int i = 0; i<tmnh; i++){
  98.         a[i+1]=a[i+1]+(a[i]/10);
  99.         a[i]= a[i]%10;
  100.  
  101.         //printf(c[i]<<" ";
  102.     }
  103.  
  104.     return(tmnh);
  105. }
  106.  
  107. int main(){
  108.     int a [TamMax];
  109.     int b [TamMax];
  110.     int c [TamMax];
  111.     int tamA, tamB, decisao;
  112.  
  113.     long int na, nb;
  114.     printf("digite 0 para soma normal e 1 para soma natural: ");
  115.     scanf("%d", &decisao);
  116.  
  117.     if(decisao == 0){
  118.         printf("digite o primeiro numero: ");
  119.         scanf("%d", &na);
  120.         printf("digite o segundo numero: ");
  121.         scanf("%d", &nb);
  122.  
  123.         tamA = criaNumerao(na, a);
  124.         tamB = criaNumerao(nb, b);
  125.  
  126.         printf("tamanho do primeiro numero: %d \n",tamA);
  127.         printf("tamanho do segundo numero: %d",tamB);
  128.        
  129.         printf("\n");
  130.  
  131.  
  132.         printf("\n");
  133.  
  134.         int tmn = soma(a,tamA,b,tamB);
  135.  
  136.         printf("tamanho do resultado: %d \n",tmn);
  137.  
  138.         if(a[tmn]==0){
  139.  
  140.         imprimeNumerao(a, (tmn-1));
  141.  
  142.         }
  143.  
  144.         if(a[tmn] > 0){
  145.         imprimeNumerao(a, tmn);
  146.         }
  147.  
  148.     }
  149.  
  150.     if(decisao == 1){
  151.         printf("digite o numero: ");
  152.         scanf("%d", &na);
  153.  
  154.         tamA = criaNumerao(na, a);
  155.  
  156.         long int aux;
  157.         int tamres;
  158.  
  159.         for(int i = 0; i<na; i++){
  160.  
  161.             aux = criaNumerao(i, b);
  162.  
  163.             tamres = soma(a, tamA, b, aux);
  164.         }
  165.  
  166.         for(int i = 0; i <tamres; i++){
  167.             c[tamres-i] = a[tamres-i];
  168.         }
  169.  
  170.         imprimeNumerao(c, tamres);
  171.     }
  172.     return 0;
  173.  
  174.    
  175.    
  176. }
Add Comment
Please, Sign In to add comment