自用帖子01
1吧
全部回复
仅看楼主
level 4
亦故里 楼主
1111自用
2026年04月24日 02点04分 1
level 4
亦故里 楼主
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
long long sum = 0; // 总和
long long fact = 1; // 保存当前阶乘值
for (int i = 1; i <= n; i++) {
fact *= i; // 计算i! = (i-1)! * i
sum += fact; // 累加到总和
}
printf("%lld", sum);
return 0;
}
2026年04月24日 02点04分 2
1
2026年04月24日 02点04分
level 4
亦故里 楼主
#include <stdio.h>
int main() {
int n;
scanf("%d", &n);
// 前两项直接返回1
if (n == 1 || n == 2) {
printf("1");
return 0;
}
int a = 1, b = 1, c;
// 从第3项计算到第n项
for (int i = 3; i <= n; i++) {
c = a + b;
a = b;
b = c;
}
printf("%d", b);
return 0;
}
2026年04月24日 02点04分 3
2
2026年04月24日 02点04分
level 4
亦故里 楼主
3:
#include <stdio.h>
int main() {
int N;
scanf("%d", &N);
int i, j;
// 上半部分(包括中间行)
for (i = 1; i <= N; i++) {
// 打印空格
for (j = 1; j <= N - i; j++) {
printf(" ");
}
// 打印星号
for (j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
printf("\n");
}
// 下半部分
for (i = N - 1; i >= 1; i--) {
// 打印空格
for (j = 1; j <= N - i; j++) {
printf(" ");
}
// 打印星号
for (j = 1; j <= 2 * i - 1; j++) {
printf("*");
}
printf("\n");
}
return 0;
}
2026年04月24日 02点04分 4
level 4
亦故里 楼主
4: #include <stdio.h>
int main() {
int n;
scanf("%d", &n);
double sum = 0.0;
for (int i = 1; i <= n; i++) {
sum += 1.0 / i; // 注意用1.0/i,避免整数除法
}
printf("%.6f", sum);
return 0;
}
2026年04月24日 02点04分 5
level 4
亦故里 楼主
5: #include <stdio.h>
#include <stdbool.h>
int main() {
int n;
scanf("%d", &n);
// 用筛法标记素数
bool is_prime[10000] = {true}; // 初始化数组
for (int i = 0; i < n; i++) {
is_prime[i] = true;
}
is_prime[0] = is_prime[1] = false; // 0和1不是素数
for (int i = 2; i * i < n; i++) {
if (is_prime[i]) {
// 把i的倍数标记为非素数
for (int j = i * i; j < n; j += i) {
is_prime[j] = false;
}
}
}
int count = 0; // 计数,控制每行输出10个
for (int i = 2; i < n; i++) {
if (is_prime[i]) {
printf("%d ", i);
count++;
if (count % 10 == 0) {
printf("\n");
}
}
}
return 0;
}
2026年04月24日 02点04分 6
level 4
亦故里 楼主
5.8
1:
M, N = map(float, input().split())
N = int(N)
# 计算第N次落地时的反弹高度
height = M * (0.5) ** N
# 计算总路程
total = M + 2 * M * (1 - (0.5) ** (N - 1))
# 保留两位小数输出
print(f"{height:.2f} {total:.2f}")
2026年05月08日 01点05分 7
level 4
亦故里 楼主
5.8 2
# 输入两个整数
a, b = map(int, input().split())
# 辗转相除法求最大公约数
def gcd(x, y):
while y != 0:
x, y = y, x % y
return x
# 计算最大公约数
g = gcd(a, b)
# 计算最小公倍数
l = a * b // g
# 输出结果
print(g)
print(l)
2026年05月08日 01点05分 8
level 4
亦故里 楼主
5.8 3
n = int(input())
if n == 1:
sum_ = 2 / 1
elif n == 2:
sum_ = 2 / 1 + 3 / 2
else:
a, b = 2, 3 # 前两项分子
c, d = 1, 2 # 前两项分母
sum_ = a / c + b / d
for _ in range(3, n + 1):
# 计算当前项
next_a = a + b
next_c = b
sum_ += next_a / next_c
# 更新变量
a, b = b, next_a
c, d = d, next_c
print("{0:.6f}".format(sum_))
2026年05月08日 01点05分 9
level 4
亦故里 楼主
5.8 4:
# 读取原始数组
arr = list(map(int, input().split()))
# 读取待插入的数字
num = int(input())
# 找到插入位置
insert_pos = 0
while insert_pos < len(arr) and arr[insert_pos] < num:
insert_pos += 1
# 插入元素
arr.insert(insert_pos, num)
# 逐行输出
for x in arr:
print(x)
2026年05月08日 02点05分 10
level 4
亦故里 楼主
5.8 5
# 读取原始数组
arr = list(map(int, input().split()))
# 读取要插入的数字
num = int(input())
# 找到插入位置
insert_index = 0
while insert_index < len(arr) and arr[insert_index] < num:
insert_index += 1
# 插入数字
arr.insert(insert_index, num)
# 逐行输出
for n in arr:
print(n)
2026年05月08日 02点05分 11
1