#include <bits/stdc++.h>
using namespace std;
bool Leapyear(int n){
if (n % 400 == 0 || (n % 4 == 0 && n % 100 != 0)) return 1;
return 0;
}
bool prime(int n){
if (n == 1 || n == 0) return false;
int m = sqrt(n);
for (int i = 2; i <= m; i++){
if (n % i == 0) return false;
}
return true;
}
int gcd(int n, int m){
if (n < m) swap(n, m);
int k = n % m;
while (k != 0){
n = m;
m = k;
k = n % k;
}
return m;
}
int lcm(int n, int m){
return n * m / gcd(n, m);
}
void prime_zone(int n){
bool arr[256];
memset(arr, true, sizeof(arr));
int m = sqrt(n);
for (int i = 2; i <= m; i++){
if (!arr[i]){
for (int j = 2; i * j <= n; j++){
arr[i * j] = false;
}
}
}
for (int i = 2; i < n; i++){
if (arr[i]) cout << i << " ";
}
}
void prime_factor(int n){
cout << n << '=';
for (int i = 2; i <= n / i; i++){
while (n % i == 0 && prime(i)){
cout << i << '*';
n /= i;
}
}
cout << n << endl;
}
bool palindromic_number(int n){
int reverse = 0, nn = n, num;
do {
num = nn % 10;
reverse = reverse * 10 + num;
nn /= 10;
}while (nn > 0);
return (reverse == n);
}
bool palindromic_string(string n){
int len = n.length();
for (int i = 0; i < len / 2; i++){
if (n[i] != n[len - i - 1]) return false;
}
return true;
}
string Binary(int n){
string ans = "";
while (n > 0){
ans += n % 2 + '0';
n /= 2;
}
reverse(ans.begin(), ans.end());
return ans;
}
int Decimalism(string n){
int ans = 0, i = 0;
for (int j = 0; j < n.length(); j++){
ans += (n[j] - '0') * pow(2, i);
i++;
}
return ans;
}
int Sequential_Search(int arr[], int n, int m){
for (int i = 0; i < n; i++){
if (arr[i] == m) return i;
}
return -1;
}
int Binary_Search(int arr[], int low, int high, int value){
if (low > high) return -1;
int mid = low + ((high - low) / 2);
if (arr[mid] == value) return mid - 1;
else if (arr[mid] > value){
Binary_Search(arr, low, mid - 1, value);
} else if (arr[mid] < value){
Binary_Search(arr, mid + 1, high, value);
}
}
void Count_sort(int arr[], int n){
int brr[100], cnt = 0;
memset(brr, 0, sizeof(brr));
for (int i = 0; i < n; i++){
brr[arr[i]]++;
}
for (int i = 0; i < 100; i++){
if (brr[i]){
while (brr[i]--){
arr[cnt] = i + 1;
cnt++;
}
}
}
}
int a = 5, n1 = -3;
double b = 1.14, f1 = -3.3, d1 = 1.23, d2 = 1.98, d3 = 1.45;
char c1 = '5', c2 = 'A', c3 = 'b';
int main(){
freopen("filename.in", "r", stdin);
freopen("filename.out", "w", stdout);
cout << Leapyear(1900) << endl;
cout << Leapyear(2000) << endl;
cout << "-----------" << endl;
cout << prime(2) << endl;
cout << prime(9) << endl;
cout << "-----------" << endl;
cout << gcd(2, 3) << endl;
cout << gcd(2, 4) << endl;
cout << "-----------" << endl;
cout << lcm(3, 10) << endl;
cout << lcm(4, 10) << endl;
cout << "-----------" << endl;
prime_zone(10);
cout << endl;
cout << "-----------" << endl;
prime_factor(20);
cout << "-----------" << endl;
cout << palindromic_number(121) << endl;
cout << palindromic_number(122) << endl;
cout << "-----------" << endl;
cout << palindromic_string("abccba") << endl;
cout << palindromic_string("abccbd") << endl;
cout << "~~~~~~~~~~~~~~~" << endl;
string s1 = to_string(a);
string s2 = to_string(b);
cout << s1 << " " << s2 << endl;
cout << "-----------" << endl;
cout << Binary(2) << endl;
cout << "-----------" << endl;
cout << Decimalism("101") << endl;
cout << "-----------" << endl;
cout << isdigit(c1) << " " << isupper(c2) << " " << islower(c3) << endl;
cout << "-----------" << endl;
cout << char(tolower(c2)) << endl;
cout << char(toupper(c3)) << endl;
cout << "-----------" << endl;
cout << ceil(d1) << " " << floor(d2) << " " << round(d3) << endl;
cout << "-----------" << endl;
cout << abs(n1) << " " << fabs(f1) << endl;
cout << "-----------" << endl;
int n1 = 2, m1 = 4;
cout << pow(n1, m1) << endl; // 乘方
int n2 = 16, m2 = 2;
cout << pow(n2, 1.0 / m2) << endl; // 开方
cout << "~~~~~~~~~~~~~~~" << endl;
char arr2[1000 + 1];
memset(arr2, 0, sizeof(arr2));
cin.getline(arr2, sizeof(arr2));
cout << arr2 << endl;
cout << "-----------" << endl;
string s;
getline(cin, s);
cout << s << endl;
cout << "-----------" << endl;
char arr[100 + 1] = "abcXYZabc";
string str(arr);
cout << str << endl;
cout << "-----------" << endl;
str = "abcdef";
strcpy(arr, str.c_str());
cout << arr << endl;
cout << "-----------" << endl;
cout << strlen(arr2) << endl;
cout << "-----------" << endl;
char crr[100 + 1] = "114514", crr2[100 + 1] = "114514", crr3[100 + 1] = "3145";
cout << strcmp(crr, crr2) << " " << strcmp(crr, crr3) << endl;
cout << "-----------" << endl;
strcat(crr, crr3);
cout << crr << endl;
cout << "-----------" << endl;
strcpy(crr, crr3);
cout << crr << endl;
cout << "-----------" << endl;
cout << str.length() << endl;
string str1 = "qwerty", str2 = "qwerty", str3 = "poiuy";
cout << str1 + " " + str3 << endl;
str1.append(str3);
cout << str1 << endl;
cout << "-----------" << endl;
str1 = str3;
cout << str1 << endl;
cout << "~~~~~~~~~~~~~~~" << endl;
int nums[100], numss[100][100], nums_m;
memset(nums, 0, sizeof(nums));
int nums_len, numss_len1, numss_len2;
cin >> nums_len;
for (int i = 0; i < nums_len; i++) cin >> nums[i];
for (int i = 0; i < nums_len; i++) cout << nums[i] << " ";
cout << endl;
cout << "-----------" << endl;
memset(numss, 0, sizeof(numss));
cin >> numss_len1 >> numss_len2;
for (int i = 0; i < numss_len1; i++){
for (int j = 0; j < numss_len2; j++) cin >> numss[i][j];
}
for (int i = 0; i < numss_len1; i++){
for (int j = 0; j < numss_len2; j++){
cout << numss[i][j] << " ";
}
cout << endl;
}
cout << "-----------" << endl;
cin >> nums_m;
cout << Sequential_Search(nums, nums_len, nums_m) << endl;
sort(nums, nums + nums_len);
cout << Binary_Search(nums, 0, nums_len, nums_m) << endl;
cout << "-----------" << endl;
int num[100], num_len;
cin >> num_len;
for (int i = 0; i < num_len; i++) cin >> num[i];
Count_sort(num, num_len);
for (int i = 0; i < num_len; i++) cout << num[i] << " ";
cout << endl;
cout << "-----------" << endl;
return 0;
}
filename.in
fasd 4
asf 23
6
5 2 4 6 7 1
3 5
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
5
5 3 2 4 1
filename.out
0
1
-----------
1
0
-----------
1
2
-----------
30
20
-----------
2 3 4 5 6 7 8 9
-----------
20=2*2*5
-----------
1
0
-----------
1
0
~~~~~~~~~~~~~~~
5 1.140000
-----------
10
-----------
5
-----------
1 1 2
-----------
a
B
-----------
2 1 1
-----------
3 3.3
-----------
16
4
~~~~~~~~~~~~~~~
fasd 4
-----------
asf 23
-----------
abcXYZabc
-----------
abcdef
-----------
6
-----------
0 -1
-----------
1145143145
-----------
3145
-----------
6
qwerty poiuy
qwertypoiuy
-----------
poiuy
~~~~~~~~~~~~~~~
5 2 4 6 7 1
-----------
1 2 3 4 5
2 3 4 5 6
3 4 5 6 7
-----------
0
2
-----------
1 2 3 4 5
-----------