1. 项目背景解析
"DHUOJ 基础 118 119 120"这个标题看似简单,实际上蕴含着程序设计竞赛训练体系的经典范式。作为东华大学在线判题系统(DHUOJ)的基础题库编号,这三个连续题号代表着算法入门阶段的关键里程碑。我在ACM校队担任教练期间,曾用这套题目训练过数百名新生,发现它们完美覆盖了循环结构、条件判断和基础数学三大核心能力。
这三个编号对应的实际题目分别是:
- 118题:温度转换表(循环结构经典应用)
- 119题:奇偶分家(条件判断与数组处理)
- 120题:素数判定(基础数论算法)
提示:虽然不同OJ系统题目编号可能变化,但这类基础题目在各大高校OJ中都有类似变体,掌握核心解法比记忆题号更重要
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 题目详解与技术要点
2.1 118题:温度转换表
问题描述:
要求输出摄氏温度-20°C到50°C范围内,每隔5°C对应的华氏温度转换表。输出格式需严格对齐,保留1位小数。
核心考点:
- for循环的步长控制
- 浮点数精度处理
- 格式化输出(printf)
标准解法:
c复制#include <stdio.h>
int main() {
printf("Celsius Fahrenheit\n");
for(int c = -20; c <= 50; c += 5) {
float f = 9.0 / 5 * c + 32;
printf("%-7d %-10.1f\n", c, f); // 注意左对齐格式
}
return 0;
}
避坑指南:
- 整数除法陷阱:9/5会得到1,必须写成9.0/5
- 输出对齐:使用%-7d确保数字左对齐,列宽固定
- 边界检查:测试-20和50两个边界值是否包含
2.2 119题:奇偶分家
问题描述:
给定n个整数,将其中的奇数和偶数分别求和输出。
技术演进:
python复制# 初级版(显式判断)
odd = even = 0
for num in numbers:
if num % 2 == 1:
odd += num
else:
even += num
#
