Giả sử chúng ta có một số n; chúng ta phải tìm số ký tự tối đa mà chúng ta có thể nhập bằng n phép toán trong đó mỗi phép toán giống như
-
Chèn ký tự "x".
-
Sao chép tất cả các ký tự.
-
Dán
Vì vậy, nếu đầu vào là n =12, thì đầu ra sẽ là 81.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau
-
nếu n <=4, thì
-
trả lại n
-
-
v:=6, x:=3, i:=5, j:=0
-
trong khi tôi không giống n, hãy làm
-
v:=v + x
-
i:=i + 1, j:=j + 1
-
nếu j chia hết cho 3 thì
-
x:=số nguyên của (x * 1.5)
-
-
ngược lại khi j không chia hết cho 3 thì
-
không làm gì
-
-
nếu không,
-
x:=x * 2
-
-
-
trở lại v
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn
Ví dụ
class Giải pháp:def giải (self, n):if n <=4:return n v =6 x =3 i =5 j =0 while i! =n:v + =x i + =1 j + =1 if j% 3 ==0:x =int (x * 1.5) elif j% 3 ==1:pass else:x * =2 return vob =Solution () n =12print (ob.solve (n))Đầu vào
12Đầu ra
81