File tree 5 files changed +95
-0
lines changed
PAT (Basic Level) Practice (中文)
5 files changed +95
-0
lines changed Original file line number Diff line number Diff line change
1
+ def is_lucky (num_str ):
2
+ result , val = True , 0
3
+ for i in range (0 , len (num_str )):
4
+ val = val * 10 + int (num_str [i ])
5
+ result &= val % (i + 1 ) == 0
6
+ return result
7
+
8
+
9
+ input ()
10
+ num_str_arr = input ().split ()
11
+ for num_str in num_str_arr :
12
+ print ("Yes" if is_lucky (num_str ) else "No" )
Original file line number Diff line number Diff line change
1
+ input ()
2
+ arr = map (int , input ().split ())
3
+ # filter out even numbers
4
+ arr = list (filter (lambda v : v % 2 == 1 , arr ))
5
+ result = arr [0 ]
6
+ # xor remove odd number pair
7
+ for i in range (1 , len (arr )):
8
+ result ^= arr [i ]
9
+ print (result )
Original file line number Diff line number Diff line change
1
+ from decimal import *
2
+
3
+
4
+ def round_number (method , number , precision ):
5
+ context = getcontext ()
6
+ context .prec = 300 # 精度位数一定要大
7
+ if method == "1" :
8
+ context .rounding = ROUND_HALF_UP
9
+ elif method == "2" :
10
+ context .rounding = ROUND_DOWN
11
+ elif method == "3" :
12
+ context .rounding = ROUND_HALF_EVEN
13
+
14
+ d = Decimal (number ).quantize (Decimal ("0." + "0" * precision ))
15
+ if d == 0 :
16
+ d = abs (d )
17
+ ans = str (d )
18
+ if ans [0 ] == "+" :
19
+ ans = ans [1 :]
20
+ return ans
21
+
22
+
23
+ n , d = map (int , input ().split ())
24
+ for i in range (n ):
25
+ op , num = input ().split ()
26
+ print (round_number (op , num , d ))
Original file line number Diff line number Diff line change
1
+ fib = [0 , 1 ]
2
+
3
+ count = 0
4
+ while fib [- 1 ] <= 10 ** 8 :
5
+ new = fib [- 1 ] + fib [- 2 ]
6
+ fib .append (new )
7
+
8
+ v = int (input ())
9
+ ans , diff = - 1 , 10 ** 8
10
+ for i in range (len (fib )):
11
+ if fib [i ] >= v :
12
+ if abs (fib [i ] - v ) < diff :
13
+ ans = fib [i ]
14
+ break
15
+ else :
16
+ ans = fib [i ]
17
+ diff = abs (fib [i ] - v )
18
+ print (ans )
Original file line number Diff line number Diff line change
1
+ #include < iostream>
2
+ #include < vector>
3
+ using namespace std ;
4
+
5
+ int main () {
6
+ ios::sync_with_stdio (false );
7
+ string s, p;
8
+ cin >> s >> p;
9
+
10
+ pair<int , string> ans{10e5 +10 , " " };
11
+ // brute force match p in s and find the shortest substring
12
+ for (int i = 0 ; i < s.size (); i++) {
13
+ if (s[i] != p[0 ]) continue ;
14
+ int l = i, r = l+1 ;
15
+ int k = 1 ;
16
+ for (; r < s.size () && k != p.size (); r++) {
17
+ if (s[r] == p[k]) k++;
18
+ if (k == p.size ()) break ;
19
+ }
20
+
21
+ int len = r-l+1 ;
22
+ if (k == p.size () && len < ans.first ) {
23
+ ans.first = len;
24
+ ans.second = s.substr (l, len);
25
+ }
26
+ }
27
+
28
+ cout << ans.second << endl;
29
+ return 0 ;
30
+ }
You can’t perform that action at this time.
0 commit comments