代码均为自做
1.题目描述:
利用泰勒公式求cos(x)=1 - x2/2! + x4/4! - ……
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
double jiecheng(int k) {//为精度考虑最好用double
double result = 1;
for (int i = 1; i <= k; i++) {
result *= i;
}
return result;
}
int main() {
double x;
while (~scanf("%lf", &x)) {
double result = 1;
double temp;
int i = 1;
do {
temp = pow(x, 2 * i) / jiecheng(2 * i);
result = result + temp * pow(-1, i);
i++;
} while (temp > 1e-6);
printf("%lf\n", result);
}
return 0;
}
2.题目描述:
归并两个有序字符串,要求输出不能有重复字符
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
int main() {
char s1[101], s2[101], str[203];
scanf("%s", s1);
getchar();
scanf("%s", s2);
int l1 = strlen(s1), l2 = strlen(s2);
int i = 0, j = 0, k = 0;
while (i < l1 && j < l2) {
if (s1[i] < s2[j]) str[k++] = s1[i++];
else if (s1[i] > s2[j]) str[k++] = s2[j++];
else {
str[k++] = s1[i++];
j++;
}
}
while (i < l1) str[k++] = s1[i++];
while (j < l2) str[k++] = s2[j++];
for (int x = 0; x < k; x++) {
printf("%C", str[x]);
}
putchar('\n');
return 0;
}
3.题目描述:
两个整数数组(无序,可有重复元素),判断两个整数数组是否完全相同(重复元素的话,重复次数也要相同)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int num1[101], num2[101];
void quickSort(int num[], int left, int right);
int main() {
int m, n, flag = 0;
scanf("%d", &m);
for (int i = 0; i < m; i++) {
scanf("%d", &num1[i]);
}
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &num2[i]);
}
quickSort(num1, 0, m - 1);
quickSort(num2, 0, n - 1);
for (int i = 0, j = 0; i < m && j < n; i++, j++) {
if (num1[i] != num2[j]) {
flag = 1;
break;
}
}
if (n == m && !flag) {
printf("Yes!\n");
}
else printf("No!\n");
return 0;
}
void quickSort(int num[], int left, int right) {
int temp, i, j, t;
if (left > right)
return;
temp = num[left];
i = left;
j = right;
while (i != j) {
while (num[j] >= temp && j > i)
j--;
while (num[i] <= temp && i < j)
i++;
if (j > i) {
t = num[j];
num[j] = num[i];
num[i] = t;
}
}
num[left] = num[i];
num[i] = temp;
quickSort(num, left, i - 1);
quickSort(num, i + 1, right);
return;
}