//Potyczki Algorytmiczne 2016 - Jedynki #include <stdio.h> //#include <conio.h> ///////////////////////////////////////////////////////////// long t,k; long roz1[50][4]; long sum1; int poz; int modulowy; int licz_nawiasy; int main() { scanf("%ld",&t); for (long ttt=1; ttt<=t; ttt++) { scanf("%ld",&k); roz1[1][1]=k; //Metoda 1 poz=1; while (roz1[poz][1]!=1) { if (roz1[poz][1]% 3==0 ) modulowy=3; else if ((roz1[poz][1]% 2==0 ) && (roz1[poz][1]% 3==1 )) modulowy= 2 ; /// <<== else if ((roz1[poz][1]% 2==0 ) && (roz1[poz][1]% 3==2 )) modulowy=2; else if ((roz1[poz][1]% 2==1 ) && (roz1[poz][1]% 3==1 )) modulowy=3; else if ((roz1[poz][1]% 2==1 ) && (roz1[poz][1]% 3==2 )) modulowy= 2 ; /// <<== //else {printf("Niespodziewany blad.\n"); return 1;}///////////////////////////////////////////// roz1[poz][3]=roz1[poz][1]%modulowy; roz1[poz][2]=modulowy; roz1[poz+1][1]=roz1[poz][1]/modulowy; poz++; } sum1=0; for (int i=1; i<poz; i++) { sum1+=roz1[i][2]; sum1+=roz1[i][3]; //printf("%7ld %7ld %7ld\n",roz1[i][1],roz1[i][2],roz1[i][3]); } licz_nawiasy=0; for (int i=1; i<poz; i++) { if (roz1[i][3]==1) printf("1+"); else if (roz1[i][3]==2) printf("1+1+"); if (i==poz-1) { if (roz1[i][2]==2) printf("1+1"); else if (roz1[i][2]==3) printf("1+1+1"); } else { if (roz1[i][2]==2) printf("(1+1)"); else if (roz1[i][2]==3) printf("(1+1+1)"); } if ( i<poz-1 ) { printf("*("); licz_nawiasy++; } } for (int i=1; i<=licz_nawiasy; i++) printf(")"); printf("\n"); } return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | //Potyczki Algorytmiczne 2016 - Jedynki #include <stdio.h> //#include <conio.h> ///////////////////////////////////////////////////////////// long t,k; long roz1[50][4]; long sum1; int poz; int modulowy; int licz_nawiasy; int main() { scanf("%ld",&t); for (long ttt=1; ttt<=t; ttt++) { scanf("%ld",&k); roz1[1][1]=k; //Metoda 1 poz=1; while (roz1[poz][1]!=1) { if (roz1[poz][1]% 3==0 ) modulowy=3; else if ((roz1[poz][1]% 2==0 ) && (roz1[poz][1]% 3==1 )) modulowy= 2 ; /// <<== else if ((roz1[poz][1]% 2==0 ) && (roz1[poz][1]% 3==2 )) modulowy=2; else if ((roz1[poz][1]% 2==1 ) && (roz1[poz][1]% 3==1 )) modulowy=3; else if ((roz1[poz][1]% 2==1 ) && (roz1[poz][1]% 3==2 )) modulowy= 2 ; /// <<== //else {printf("Niespodziewany blad.\n"); return 1;}///////////////////////////////////////////// roz1[poz][3]=roz1[poz][1]%modulowy; roz1[poz][2]=modulowy; roz1[poz+1][1]=roz1[poz][1]/modulowy; poz++; } sum1=0; for (int i=1; i<poz; i++) { sum1+=roz1[i][2]; sum1+=roz1[i][3]; //printf("%7ld %7ld %7ld\n",roz1[i][1],roz1[i][2],roz1[i][3]); } licz_nawiasy=0; for (int i=1; i<poz; i++) { if (roz1[i][3]==1) printf("1+"); else if (roz1[i][3]==2) printf("1+1+"); if (i==poz-1) { if (roz1[i][2]==2) printf("1+1"); else if (roz1[i][2]==3) printf("1+1+1"); } else { if (roz1[i][2]==2) printf("(1+1)"); else if (roz1[i][2]==3) printf("(1+1+1)"); } if ( i<poz-1 ) { printf("*("); licz_nawiasy++; } } for (int i=1; i<=licz_nawiasy; i++) printf(")"); printf("\n"); } return 0; } |