Advertisement
n4wn4w

JAVA zadachi ot predvaritelen izpit C#

Apr 9th, 2015
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 14.80 KB | None | 0 0
  1.  1 VARIANT ///////////////////////////////////////////////////////////////////
  2.  
  3.  1 zadacha  //////
  4.           Scanner in = new Scanner(System.in);
  5.           String leap = in.next();
  6.           int addPlays = 0;
  7.           if ("t".equals(leap)){
  8.               addPlays =3;
  9.           }
  10.              int holidays = in.nextInt();
  11.              int hometowns = in.nextInt();
  12.              double plays = hometowns + (double)2/3*(52-hometowns)+(double)1/2 * holidays + addPlays;
  13.              System.out.println((int)plays);
  14.  
  15.  2 zadacha ///////
  16.  
  17.               Scanner in = new Scanner(System.in);
  18.               int n =  in.nextInt();
  19.               int sumFirst = 0;
  20.               int sumSecont = 0;
  21.              
  22.              
  23.               /////// 1 variant
  24. //              for(int i=0; i<n*2; i++){
  25. //               int nums = in.nextInt();
  26. //                if(i < n){
  27. //                    sumFirst += nums;
  28. //                }
  29. //                else {
  30. //                    sumSecont += nums;
  31. //                       }
  32. //              }
  33.              
  34.               //////// 2 variant
  35.              
  36.               for(int i=0; i<n; i++){
  37.                   sumFirst += in.nextInt();
  38.               }
  39.               for(int i=0; i<n; i++){
  40.                   sumSecont += in.nextInt();
  41.               }
  42.              
  43.                   if(sumFirst == sumSecont){
  44.                       System.out.println("Yes , sum = " + sumFirst);
  45.                   }
  46.                   else{
  47.                       int diff = Math.abs(sumFirst - sumSecont);
  48.                       System.out.println("No , diff = " + diff);
  49.                       }
  50.  
  51. 3 zadacha /////
  52.  
  53.               Scanner in = new Scanner(System.in);// trqbva da vuvedm golqmo chislo naprimer 101
  54.               int n = in.nextInt();
  55.              
  56.               double start = System.currentTimeMillis();
  57.               double memoryStart = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory();
  58.              
  59.               /////
  60.               String empty = new String(new char[n]);
  61.               String asterix = new String(new char[2*n]).replace("\0","*");
  62.               String dash = new String(new char [2*(n-1)]).replace("\0", "/");
  63.               String bridge = empty.replace("\0","|");
  64.              
  65.                 // FIRST line
  66.             System.out.println(asterix+empty+asterix);
  67.             /////
  68.                 // BEFORE the bridge
  69.             for(int i=0; i<(n-3)/2 ;i++){
  70.                 System.out.println("*"+dash+"*"+empty+"*"+dash+"*");
  71.             }
  72.        
  73.        
  74.                 // print the bridge
  75.         System.out.println("*"+dash+"*"+bridge+"*"+dash+"*");
  76.              
  77.                 // after the bridge
  78.         for(int i=0; i<(n-3)/2 ;i++){
  79.             System.out.println("*"+dash+"*"+empty+"*"+dash+"*");
  80.         }
  81.              
  82.                 // last line
  83.         System.out.println(asterix+empty+asterix);
  84.         /////
  85.         System.out.println("working time"+(System.currentTimeMillis()-start)/1000+"seconds");
  86.         double memoryEnd = Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory();
  87.         System.out.println("Used memory : "+(memoryEnd-memoryStart)/1024/1024+"MB");
  88.  
  89.  
  90. 4 zadacha ///
  91.                        // 125 171 217
  92.                 public static int sumOfDigits(int number){// metoda mi zima vsqko tricifreno chislo 125 i go razbiva na 1 2 5 i gi subira 1+2+5=8 i taka razbiva i 171 = 9 , 217 = 10 sum= 8+9+10=27
  93.                     int first = number/100;
  94.                     int second = number%100/10;
  95.                     int third = number%10;
  96.                     return first+second+third;
  97.             }
  98.            
  99.             public static boolean isCorrect(int number){// metoda mi razbiva chisloto na 1 2 5 i proverqva za vsqko edno dali e v diapazona ot 1 do 7  first>0 && first<8
  100.                     int first = number/100;
  101.                     int second = number%100/10;
  102.                     int third = number%10;
  103.                     return first>0 && first<8 && second>0 && second<8 && third>0 && third<8;
  104.             }
  105.             public static String isStr(int number){// zimame 4isloto 125 convertirame go v String "125" i go subirame s dr kato gi konkatenirame v stringa k=9 i rpoverqvame dali k e s duljina 9
  106.                
  107.                 String num = String.valueOf(number);
  108.                 return num;
  109.         }
  110.            
  111.                    
  112.                     public static void main(String[] args) {
  113.                                            
  114.                            
  115.                             int sum = 27;
  116.                             int diff = 46;
  117.                             boolean foundAny = false;
  118.                             //int count = 0;
  119.                             for (int n1=111; n1 <= 777; n1++){
  120.                                    
  121.                                     int n2 = n1 + diff;
  122.                                     int n3 = n1 + 2*diff;
  123.                                     String k = isStr(n1)+isStr(n2)+isStr(n3);
  124.                                     if(sumOfDigits(n1)+sumOfDigits(n2)+sumOfDigits(n3)==sum &&
  125.                                                     isCorrect(n1) && isCorrect(n2)&& isCorrect(n3)&&
  126.                                                     k.length()==9)
  127.                                             {
  128.                                             //count++;
  129.                                             foundAny = true;
  130.                                             System.out.println(k);
  131.                                     }
  132.                             }
  133.                             if (!foundAny){/// moje i if statmanta if(foundAny == false)
  134.                                 System.out.println("NO");
  135.                             }
  136.                            //               if (count ==0){
  137.                            //               System.out.println("NO");
  138.                            //               }
  139.      
  140.                
  141.  
  142.    ////////////////////// 4zadacha 2 reshnie s 3 vlojeni FOR LOOPS  i count++ ////////////////////////////////
  143.  
  144.                 public static int sumOfDigits(int number){
  145.         int first = number/100;
  146.         int second = number%100/10;
  147.         int third = number%10;
  148.         return first+second+third;
  149.             }
  150.    
  151.             public static boolean isCorrect(int number){
  152.         int first = number/100;
  153.         int second = number%100/10;
  154.         int third = number%10;
  155.         return first>0 && first<8 && second>0 && second<8 && third>0 && third<8;
  156.             }
  157.    
  158.    
  159.        
  160.         public static void main(String[] args) {
  161.                    
  162.            
  163.             int sum = 12;
  164.             int diff = 15;
  165.             //boolean foundAny = false;
  166.             int count = 0;
  167.                          //for (int n1=111; n1 <= 777; ){   moje i s 3 vlojeni for cikula
  168.                         //for (int n2=n1 + diff; n1 <= 777;){
  169.                               //for (int n3= n2 + diff; n1 <= 777; n1++ , n2++ , n3++){
  170.                     for (int n1 = 111, n2= n1 + diff, n3= n2 + diff; n1 <= 777; n1++ , n2++ , n3++){
  171.                
  172.                   //            int n2 = n1 + diff;
  173.                   //            int n3 = n1 + 2*diff;
  174.                
  175.                 if(sumOfDigits(n1)+sumOfDigits(n2)+sumOfDigits(n3)==sum &&
  176.                         isCorrect(n1) && isCorrect(n2)&& isCorrect(n3)){
  177.                     count++;
  178.                     //foundAny = true;
  179.                     System.out.println(n1+""+n2+""+n3);
  180.                 }
  181.             }
  182.             //if (!foundAny){/// moje i if statmanta if(foundAny == false)
  183.             //    System.out.println("NO");
  184.             //}
  185.             if (count ==0){
  186.                     System.out.println("NO");
  187.             }
  188.  
  189. //////////////// 4 zadacha C# reshenie /////////////////////
  190.  
  191.  int sum = int.Parse(Console.ReadLine());
  192.             int diff = int.Parse(Console.ReadLine());
  193.             bool OK = false;
  194.  
  195.             string num;
  196.             for (int i = 111; i < 778; i++)
  197.             {
  198.  
  199.                 int tempSum = 0;
  200.                 int a = i;
  201.                 int b = a + diff;
  202.                 int c = b + diff;
  203.                 //string num = "";
  204.                
  205.  
  206.                 num = a.ToString() + b.ToString() + c.ToString();
  207.                 Regex r = new Regex("0|8|9");
  208.                 if (!r.IsMatch(num))  // (!num.Contains("0") && !num.Contains("8") && !num.Contains("9"))
  209.                 {
  210.                     for (int j = 0; j < num.Length; j++)
  211.                     {
  212.                         tempSum += int.Parse(num[j].ToString());
  213.                     }
  214.                     if (tempSum == sum && num.Length == 9)
  215.                     {
  216.                         Console.WriteLine(num);
  217.                         OK = true;
  218.                     }
  219.                 }
  220.             }
  221.             if(!OK)
  222.          {
  223.             Console.WriteLine("NO");
  224.          }
  225.  
  226. /////////////////////// 4 zadacha moe reshenie ///////////////////////////////////
  227.  
  228.             int sum = 24;
  229.             int diff = 103;
  230.             boolean OK = false;
  231.  
  232.             String[] num ;
  233.             num = null;
  234.             num = new String[3];
  235.   for (int i = 111; i < 778; i++){
  236.    
  237.     int tempSum = 0;
  238.     int a = i;
  239.     int b = a + diff;
  240.     int c = b + diff;
  241.     //string num = "";
  242.     String strI = Integer.toString(a);
  243.     num[0] = strI;
  244.     String strJ = Integer.toString(b);
  245.     num[1] = strJ;
  246.     String strK = Integer.toString(c);
  247.     num[2] = strK;
  248.    String hui = strI+strJ+strK;
  249.   //  Regex r = new Regex("0|8|9");
  250.     String phoneRegEx = "[089]+";
  251.     Pattern phonePattern = Pattern.compile(phoneRegEx);
  252.     Matcher matcher = phonePattern.matcher(hui);
  253.     if (!matcher.find())  
  254.     //if(!hui.contains("0") && !hui.contains("8") && !hui.contains("9")) // moje i taka bez REGex
  255.     {
  256.         char arr[]=hui.toCharArray();
  257.         for(int k=0;k<arr.length;k++){
  258.             tempSum += Integer.parseInt(String.valueOf(arr[k]));
  259.         }
  260.         if (tempSum == sum && arr.length == 9)
  261.         {
  262.             System.out.println(arr);
  263.             OK = true;
  264.         }
  265.     }
  266. }
  267. if(!OK)
  268. {
  269.     System.out.println("NO");
  270. }
  271.  
  272.  
  273. variant 2 2222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222222
  274.  
  275. zadacha 3 /////////////
  276.  
  277. public static void PrintLine1(char aside,char middle, int number){
  278.        
  279.         System.out.print(aside);
  280.         for (int i = 0; i < 2* number -2; i++){
  281.             System.out.print(middle);
  282.         }
  283.         System.out.print(aside);
  284.     }
  285.    
  286.     public static void PrintMiddle1(char ch , int number){
  287.         for(int i= 0; i < number; i++){
  288.             System.out.print(ch);
  289.         }
  290.     }
  291.    
  292.  public static void main(String[] args) {
  293.                                            
  294.                int n = 5;
  295.                // print top
  296.                PrintLine1(' ','*',n);
  297.                PrintMiddle1(' ', n);
  298.                PrintLine1(' ','*',n);
  299.                System.out.println();
  300.                
  301.                for(int i = 0; i < n-2; i++){
  302.                    if(i== n/2 - 1){
  303.                        PrintLine1('*','/',n);
  304.                        PrintMiddle1('-', n);
  305.                        PrintLine1('*','/',n);
  306.                        System.out.println();  
  307.                    }
  308.                    else{
  309.                        PrintLine1('*','/',n);
  310.                        PrintMiddle1(' ', n);
  311.                        PrintLine1('*','/',n);
  312.                        System.out.println();
  313.                    }
  314.                }
  315.                // print bottom
  316.                PrintLine1(' ','*',n);
  317.                PrintMiddle1(' ', n);
  318.                PrintLine1(' ','*',n);
  319.                System.out.println();
  320.  
  321.  
  322.  
  323. /// 2 zadacha //
  324.  
  325.                 Scanner input = new Scanner(System.in);
  326.         int n = input.nextInt();
  327.             int oddSum = 0;
  328.         int evenSum = 0;
  329.        
  330.         for(int i = 0; i< n *2; i++){
  331.             int number = input.nextInt();
  332.            
  333.             if(i % 2== 0){
  334.                 evenSum += number;
  335.             }
  336.             else{
  337.                 oddSum += number;
  338.             }
  339.         }
  340.         if(oddSum == evenSum){
  341.             System.out.println("Yes, sum=" + oddSum);
  342.         }
  343.         else{
  344.             System.out.println("No, diff=" + Math.abs(oddSum-evenSum));
  345.         }
  346.  
  347. 4 zadacha///////////  sushtta kato  4 zadacha ot variant 1 samo 4e paterna/ shablona e ne ot 1 do 7 a ot 5 do 9 ->
  348. -> return first>4 && first<10 && second>4 && second<10 && third>4 && third<10;
  349. -> return first>0 && first<8 && second>0 && second<8 && third>0 && third<8;
  350. String phoneRegEx = "[01234]+";
  351.         Pattern phonePattern = Pattern.compile(phoneRegEx);
  352.         Matcher matcher = phonePattern.matcher(hui);
  353.         if (!matcher.find())  {
  354.  
  355. variant 3 ///////////////////// 33333333333333333333333333333333333333333333333333333333333333333
  356. 33333333333333333333333333333333333333333333333
  357. 3333333333333333333333333333333333333333333333333333333333333333333333333333
  358.  
  359.  
  360.  
  361. zadacha 2  //////////
  362.  
  363. Scanner input = new Scanner(System.in);
  364.                 String[] numString = input.nextLine().split(" ");
  365.                
  366.                 int max = Integer.MIN_VALUE;
  367.                 long sum = 0;
  368.                
  369.                 for(int i = 0; i< numString.length; i++){
  370.                     int number = Integer.parseInt(numString[i]);
  371.                     sum += number;
  372.                    
  373.                     if(number > max){
  374.                         max = number;
  375.                     }
  376.                 }
  377.                 if (sum- max == max){
  378.                     System.out.println("Yes, sum=" + max);
  379.                 }
  380.                 else {
  381.                     long diff = Math.abs((sum-max) - max);
  382.                     System.out.println("Yes, sum=" + diff);
  383.                 }
  384.                
  385.        
  386. zadacha 4 ////////
  387.  
  388.                 Scanner input = new Scanner(System.in);
  389.                 int diff = Integer.parseInt(input.nextLine());
  390.                 String[] letter = {"k","n","p","s"};
  391.                 int[] letterValue = {1, 4, 5, 3};
  392.                 boolean foundResult = false;
  393.                 ArrayList<String> resultList = new ArrayList<String>();
  394.                
  395.                 if(diff <= 16){// zashtoto ne moje da ima diff po-golqmo ot 16 max e 20 - 4 = 16
  396.                     for(int i1 =0; i1 < letter.length; i1++){
  397.                         for(int i2 =0; i2 < letter.length; i2++){
  398.                             for(int i3 =0; i3 < letter.length; i3++){
  399.                                 for(int i4 =0; i4 < letter.length; i4++){
  400.                                     for(int i5 =0; i5 < letter.length; i5++){
  401.                                         for(int i6 =0; i6 < letter.length; i6++){
  402.                                             for(int i7 =0; i7 < letter.length; i7++){
  403.                                                 for(int i8 =0; i8 < letter.length; i8++){
  404.                                                    
  405.             String wholeSequence =letter[i1]+
  406.                     letter[i2]+
  407.                     letter[i3]+
  408.                     letter[i4]+
  409.                     letter[i5]+
  410.                     letter[i6]+
  411.                     letter[i7]+
  412.                     letter[i8];
  413.                                                            
  414.             int firstFourLetters = letterValue[i8]+
  415.                     letterValue[i7]+
  416.                     letterValue[i6]+
  417.                     letterValue[i5];
  418.            
  419.             int secondFourLetters = letterValue[i4]+
  420.                     letterValue[i3]+
  421.                     letterValue[i2]+
  422.                     letterValue[i1];
  423.                    
  424.             if(firstFourLetters - secondFourLetters == diff || secondFourLetters - firstFourLetters == diff){
  425.                 foundResult = true;
  426.                 //System.out.println(wholeSequence);/// 1 variant
  427.                 resultList.add(wholeSequence);// 2 variant sus sortirane na ArrayList
  428.             }
  429.                                                    
  430.                                                 }
  431.                                             }
  432.                                         }
  433.                                     }
  434.                                 }
  435.                             }
  436.                         }
  437.                     }
  438.                 }
  439.                 Collections.sort(resultList);
  440.                 for (String s : resultList){
  441.                     System.out.println(s);
  442.                 }
  443.                
  444.                 if(!foundResult){
  445.                     System.out.println("NO");
  446.                 }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement