乙级的题目训练主要用来熟悉编程语言的语法和形成良好的编码习惯和编码规范。从小白开始逐步掌握用编程解决问题。
PAT (Basic Level) Practice 1103 缘分数
问题分析
- 题设给定两个关系式
a^3 - (a-1)^3 = c^2
和b^2 + (b-1)^2 = c
, 要求指定区间内满足两个等式的a和b。 - 即, 要求指定区间内满足等式
a^3 - (a-1)^3 = (b^2 + (b-1)^2)^2
的a和b。 - 等式可以化简为:
3*a^2 - 3*a = 4*b^4 - 8*b^3 + 8*b^2 - 4*b
性能优化
可以考虑将每一个值x的 3*x^2 - 3*x
和4*x^4 - 8*x^3 + 8*x^2 - 4*x
存储起来, 避免重复计算防止超时
完整描述步骤
- 获取输入: 取值区间左端点, 取值区间右端点
- 初始化计数器:
- solution个数 = 0
- a的取值 从 取值区间左端点 到 取值区间右端点:
- b的取值从 1 到 a - 1:
- 如果满足
3*a^2 - 3*a = 4*b^4 - 8*b^3 + 8*b^2 - 4*b
:- 输出"{a} {b}"
- 如果满足
- b的取值从 1 到 a - 1: