Advertisement
Guest User

Untitled

a guest
Jun 15th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.36 KB | None | 0 0
  1. public class Odejmowanie {
  2.  
  3.  
  4.         public static int [] naTabInt(String liczba, int wymiar)
  5.         {
  6.             int [] tab = new int[wymiar];
  7.             int pozycja = liczba.length() - 1;
  8.             for (int i = 0; i < wymiar; i++)
  9.             {
  10.                 if (pozycja < 0) tab[i] = 0;
  11.                 else tab[i] = liczba.charAt(pozycja--) - 48;
  12.             }
  13.             return tab;
  14.         }
  15.        
  16.         public static String pomnoz(String A, String B)
  17.         {
  18.             int a = Integer.parseInt(A);
  19.             int b = Integer.parseInt(B);
  20.             int mul = a * b;
  21.            
  22.             return String.valueOf(mul);
  23.         }
  24.  
  25.         public static String odejmij(String A, String B)
  26.         {
  27.             String wynik = "";
  28.             int wymiar = Math.max(A.length(), B.length()) + 1;
  29.  
  30.             int [] tA = new int[wymiar];
  31.             int [] tB = new int[wymiar];
  32.             int [] tW = new int[wymiar];
  33.  
  34.             tA = naTabInt(A, wymiar);
  35.             tB = naTabInt(B, wymiar);
  36.  
  37.             for (int i=0; i< wymiar; i++) tW[i] = 0;
  38.  
  39.             for (int i = 0; i <wymiar - 1; i++)
  40.             {
  41.                 tW[i+1] += (tW[i]+tA[i]-tB[i]+10)/10 - 1;
  42.                 tW[i] = (tW[i]+tA[i]-tB[i] + 10)%10;
  43.             }
  44.  
  45.             while (wymiar >1 && tW[wymiar-1]==0)wymiar--;
  46.  
  47.             if(String.valueOf(tW[wymiar-1]).equals("-1")){
  48.                 wynik+='-';
  49.                 for(int i=wymiar-1; i>1; i--) {
  50.                     char tmp = (char)(9-tW[i-1]+48);
  51.                     if(tmp!='0') wynik+=tmp;
  52.                 }
  53.                 char lasttmp = (char)(10-tW[0]+48);
  54.                 wynik+= lasttmp;
  55.             }
  56.             else {
  57.                 for (int i= wymiar; i >0; i--) {
  58.                     wynik += (char)(tW[i-1]+48);
  59.                 }
  60.             }
  61.             return wynik;
  62.         }
  63.  
  64.         public static void main(String[] args)
  65.         {
  66.             String A="13", B="14";
  67.             System.out.print(A+" - "+B+" = ");
  68.             System.out.println(odejmij(A,B));
  69.        
  70.             A="9999";
  71.             B="9999";
  72.             System.out.print(A+" - "+B+" = ");
  73.             System.out.println(odejmij(A,B));
  74.            
  75.             A="10";
  76.             B="-10";
  77.             System.out.print(A+" * "+B+" = ");
  78.             System.out.println(pomnoz(A,B));
  79.         }
  80.  
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement