/*
* Author: Arpit Bhayani
* //arpitbhayani.me
*/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define ll long long
#define MIN[a, b] a < b ? a : b
#define MAX[a, b] a > b ? a : b
using namespace std;
int readline[char *str] {
int i = 0;
char ch;
while[[ch = getchar[]] != '\n'] {
str[i++] = ch;
}
str[i] = '\0';
return i;
}
ll int gcd[ll int a, ll int b] {
if[b == 0] {
return a;
}
return gcd[b, a % b];
}
int main[int argc, char *argv[]] {
int t;
scanf["%d", &t];
while[t--] {
ll int a, b, x, y;
scanf["%lld%lld%lld%lld", &a, &b, &x, &y];
ll int u1, u2;
u1 = a > b ? gcd[a, b] : gcd[b, a];
u2 = x > y ? gcd[x, y] : gcd[y, x];
if [u1 == u2] {
printf["YES\n"];
}
else {
printf["NO\n"];
}
}
return 0;
}
Đầu tiên ta sẽ kiểm tra trường hợp cạnh, Nếu độ dài của s bằng 1 thì chuỗi số không thể đẹp nên in ra KHÔNG
if len[s]==1:
print["NO"]
return
Thay vì xác định xem chuỗi số đã cho có đẹp hay không bằng cách cắt nó hoặc thực hiện các thao tác khác trực tiếp trên nó, chúng ta sẽ tạo một chuỗi đẹp hợp lệ của riêng mình và đánh đồng nó với chuỗi số đã cho.
Để tạo một chuỗi số đẹp của riêng mình, Chúng tôi sử dụng vòng lặp for để lặp từ 1 đến một nửa độ dài của s
for i in range[1, len[s]//2+1]:
Khi đã ở trong vòng lặp for, chúng ta khai báo một biến genstr và gán s[. tôi] với nó. Nếu s = “91011" và i = 3 thì s[. tôi]=”910”. Sau đó, chúng tôi khai báo một biến prev khác và gán int[genstr] cho nó
for i in range[1, len[s]//2+1]:
genstr = s[:i]
prev = int[genstr]
Sau đó, chúng tôi sử dụng vòng lặp while để chạy một khối mã cho đến khi độ dài genstr nhỏ hơn độ dài s
while len[genstr] < len[s]:
Trong vòng lặp while, chúng ta khai báo một biến next và gán prev+1 cho nó. Sau đó, chúng tôi nối thêm genstr với str[next]
while len[genstr] < len[s]:
next = prev+1
genstr+=str[next]
Sau đó, chúng ta gán giá trị của next cho prev trong vòng lặp while
while len[genstr] < len[s]:
next = prev+1
genstr+=str[next]
prev = next
Với sự trợ giúp của giá trị i trong vòng lặp for, chúng tôi tạo số đầu tiên thành một chuỗi đẹp có thể và gán nó cho genstr, Sau đó, chúng tôi nối các số liên tiếp vào genstr trong vòng lặp while bằng cách sử dụng các biến prev và next
Sau đó, sau khi hoàn thành vòng lặp while, chúng ta so sánh genstr và s, nếu genstr bằng s thì s là một chuỗi đẹp và chúng ta in ra “YES” và s[. tôi], nơi s[. i] là số đầu tiên của dãy tăng
if genstr == s:
print["YES", s[:i]]
return
Khi chúng tôi thoát khỏi vòng lặp for khi hết giá trị của i, thì chắc chắn rằng s không phải là một chuỗi đẹp và chúng tôi in ra “KHÔNG”
Bạn được cho một cặp số nguyên [x,y]. Bạn có thể thực hiện một trong hai thao tác bên dưới, theo bất kỳ thứ tự nào, không hoặc nhiều lần
1. [x,y] -> [x+y,y]
2. [x,y] -> [x,y+x]
Ví dụ: bạn có thể bắt đầu bằng [1, 4], đổi thành [5, 4], đổi thành [5, 9], sau đó đổi lại thành [5, 14].
Bạn có bốn số nguyên. a, b, c và d. Trả về “Có” [không có dấu ngoặc kép] nếu có thể bắt đầu bằng cặp [a, b] và kết thúc bằng cặp [c, d]. Nếu không, hãy trả về “Không”.
chữ ký phương thức. Chuỗi isitpossible[int a, int b, int c, int d]
Input
Bốn số nguyên trong các dòng riêng biệt.
Đầu ra
Một chuỗi “Có” hoặc “Không”.
Hạn chế
1≤ a,b,c,d ≤ 1000
Đầu vào mẫu
1
4
5
9
Đầu ra mẫu
Có
Giải thích
[1, 4] -> [5, 4] -> [5, 9].
Giải pháp trong Java
________số 8Chia sẻ cái này
Như thế này
Thích Đang tải.