C语言求最大公约数和最小公倍数oj1047调用函数
时间: 2023-12-03 10:38:42 浏览: 111
以下是C语言求最大公约数和最小公倍数的代码,可以用于oj1047调用函数:
```c
#include <stdio.h>
// 求最大公约数
int gcd(int a, int b) {
if (b == 0) {
return a;
}
return gcd(b, a % b);
}
// 求最小公倍数
int lcm(int a, int b) {
return a * b / gcd(a, b);
}
int main() {
int a, b;
scanf("%d %d", &a, &b);
printf("%d\n", gcd(a, b));
printf("%d\n", lcm(a, b));
return 0;
}
```
相关问题
求等差数列的和c语言oj
在C语言中,求等差数列的和通常涉及到计算一系列数字,这些数字按照固定差值递增或递减。这是一个基础的数学问题,可以使用循环结构来解决。下面是一个简单的函数示例,用于计算给定等差数列的前n项和:
```c
#include <stdio.h>
double sum_of_arithmetic_sequence(int n, int a, int d) {
double sum = (n * (a + (n - 1) * d)) / 2; // 等差数列和公式:(首项+末项)*项数/2
return sum;
}
int main() {
int n, a, d;
printf("请输入等差数列的项数(n): ");
scanf("%d", &n);
printf("请输入首项(a): ");
scanf("%d", &a);
printf("请输入公差(d): ");
scanf("%d", &d);
double result = sum_of_arithmetic_sequence(n, a, d);
printf("等差数列 %d 到 %d 的前 %d 项和为 %.2f\n", a, a + (n - 1) * d, n, result);
return 0;
}
```
在这个程序中,用户会被提示输入等差数列的项数、首项和公差。`sum_of_arithmetic_sequence`函数根据这些信息计算并返回和。
西电python oj1047
### 西安电子科技大学 Python OJ 1047 题目解析
题目要求统计随机生成的整数列表中各个整数出现的频率,并按升序输出这些整数及其对应的频率。具体来说:
- 使用给定的种子数 `10` 来初始化伪随机数生成器。
- 生成一个长度为 50 的列表,其中每个元素都是 `[1, 20]` 区间内的随机整数。
- 统计该列表中每个整数出现的次数。
- 将结果按键(即整数值)升序排列并打印。
#### 解决方案实现
以下是完整的解决方案代码[^1]:
```python
import random
# 设置随机种子
random.seed(10)
# 生成随机整数列表
ls = []
for _ in range(50):
ls.append(random.randint(1, 20))
# 计算各整数出现频次
counts = {}
for num in ls:
counts[num] = counts.get(num, 0) + 1
# 对字典项进行排序
sorted_items = sorted(counts.items())
# 输出结果
for key, value in sorted_items:
print(f"{key} 出现了 {value} 次")
```
这段代码首先设置了随机种子以确保每次运行都能得到相同的结果序列;接着通过循环构建了一个包含 50 个随机整数的列表;之后利用字典记录每种不同整数的数量;最后对这个字典进行了排序处理以便能够按照从小到大的顺序展示最终统计数据。
阅读全文