MT1321·乘积数组
c 语言代码实现
#include <stdio.h>
int main() {
int n, A[100];
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &A[i]);
}
for (int i = 0; i < n; i++) {
int result = 1;
for (int j = 0; j < n; j++)
if (j != i)
result *= A[j];
printf("%d ", result);
}
return 0;
}
MT1322·N个骰子
c语言代码实现
#include <stdio.h>
int method(int n, int m, int sum) {
if (sum <= 0 || sum > n * m || n <= 0 || m <= 0)
return 0;
if (n == 1) {
return 1;
}
int tmp = 0;
for (int i = 1; i <= m; i++) {
int res = method(n - 1, m, sum - i);
tmp += res;
}
return tmp;
}
int main() {
int n, m, sum;
scanf("%d %d %d", &n, &m, &sum);
printf("%d", method(n, m, sum));
return 0;
}
MT1323·最短路径
c语言代码实现
#include <math.h>
#include <stdio.h>
int min(int a, int b) {
if (a > b)
return b;
return a;
}
int main() {
int a, b;
scanf("%d %d", &a, &b);
int a1[100], b1[100], a2 = 0, b2 = 0;
a1[0] = a;
b1[0] = b;
while (a != 1) {
a1[++a2] = a / 2;
a = a / 2;
}
while (b != 1) {
b1[++b2] = b / 2;
b = b / 2;
}
b1[b2] = 1, a1[a2] = 1;
for (int i = 0; i <= min(b2, a2); i++) {
if (b1[b2 - i] != a1[a2 - i]) {
printf("%d", (b2 + a2 - i * 2 + 2));
return 0;
}
}
printf("%d", abs(b2 - a2));
return 0;
}
MT1324·两数之和
c语言代码实现
#include <stdio.h>
int main() {
int n, x;
int num[100];
scanf("%d %d", &n, &x);
for (int i = 0; i < n; i++) {
scanf("%d", &num[i]);
}
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (num[i] + num[j] == x) {
printf("1");
return 0;
}
}
}
printf("0");
return 0;
}
MT1325·四数之和
c 语言代码实现
#include <stdio.h>
int main() {
int n, x;
int num[200];
scanf("%d %d", &n, &x);
for (int i = 0; i < n; i++) {
scanf("%d", &num[i]);
}
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
for (int k = j + 1; k < n; k++) {
for (int w = k + 1; w < n; w++) {
if (num[i] + num[j] + num[k] + num[w] == x) {
printf("1");
return 0;
}
}
}
}
}
printf("0");
return 0;
}
MT1326·波兰国旗问题
c 语言代码实现
#include <stdio.h>
#include <string.h>
int main() {
int n;
scanf("%d", &n); // 输入字符串长度
char s[n + 1]; // 创建一个长度为 n 的字符数组
scanf("%s", s); // 输入字符串
int count_0 = 0, count_1 = 0; // 初始化 0 和 1 的计数器
// 遍历字符串,统计 0 和 1 的个数
for (int i = 0; i < n; i++) {
if (s[i] == '0') {
count_0++;
} else {
count_1++;
}
}
// 根据计数器构造排序后的字符串
for (int i = 0; i < count_0; i++) {
printf("0");
}
for (int i = 0; i < count_1; i++) {
printf("1");
}
printf("\n");
return 0;
}
MT1327·荷兰国旗问题
#include <stdio.h>
#include <string.h>
int main() {
int n;
scanf("%d", &n); // 输入字符串长度
char s[n + 1]; // 创建一个长度为 n 的字符数组
scanf("%s", s); // 输入字符串
int count_0 = 0, count_1 = 0, count_2 = 0; // 初始化 0 和 1 和 2 的计数器
// 遍历字符串,统计 0 和 1 的个数
for (int i = 0; i < n; i++) {
if (s[i] == '0') {
count_0++;
} else if (s[i] == '1') {
count_1++;
} else {
count_2++;
}
}
// 根据计数器构造排序后的字符串
for (int i = 0; i < count_0; i++) {
printf("0");
}
for (int i = 0; i < count_1; i++) {
printf("1");
}
for (int i = 0; i < count_2; i++) {
printf("2");
}
printf("\n");
return 0;
}
MT1328·用函数求和
c 语言实现代码
#include <stdio.h>
int add(int x, int y) { return x + y; }
int main() {
int a, b;
scanf("%d,%d", &a, &b);
printf("%d", add(a, b));
return 0;
}
MT1329·用函数计算公式
c 语言实现代码
#include <stdio.h>
int fun(int n) {
int res = 0;
for (int i = 1; i < n + 1; i += 3) {
res += i;
}
return res;
}
int main() {
int n;
scanf("%d", &n);
printf("%d", fun(n));
return 0;
}
MT1330·区间数字的总和
c 语言代码实现
#include <stdio.h>
int main() {
int a, b, c, d, e, f;
// 输入6个整数
scanf("%d %d %d %d %d %d", &a, &b, &c, &d, &e, &f);
// 计算每个区间的和
int sum_ab = (a + b) * (b - a + 1) / 2;
int sum_cd = (c + d) * (d - c + 1) / 2;
int sum_ef = (e + f) * (f - e + 1) / 2;
// 输出三个区间的总和
int total_sum = sum_ab + sum_cd + sum_ef;
printf("%d\n", total_sum);
return 0;
}