本篇将继续讲解PTA平台上的题目 L1-008 求整数段和,通过对整数区间的求和,进一步提升Cangjie编程语言的循环操作与数学计算能力。
关键词
- PTA刷题
- 数字区间
- 循环求和
- 数学运算
- Cangjie语言
一、L1-008 求整数段和
题目描述:给定两个整数 A 和 B,要求计算从 A 到 B(包括 A 和 B)之间所有整数的和。
- 输入格式:在一行中输入两个整数 A 和 B。
- 输出格式:输出从 A 到 B 之间所有整数的和,格式为 Sum = 和。
解题思路
- 区间求和:无论 A 是否小于 B,都需要从 A 到 B 或者从 B 到 A 进行求和,确保顺序处理。
- 循环求和:使用循环对区间内的整数进行累加。
- 格式化输出:按题目要求,每 5 个数字换一行,最后输出区间和。
代码实现
package cjcDemoimport std.console.*
import std.convert.*
import std.format.*// 计算整数区间和
func calculateSum(A: Int64, B: Int64): Int64 {var sum = 0var start = Avar end = B// 确定正确的起点和终点if (A > B) {start = Bend = A}var count = 0// 遍历区间并累加for (i in start..end + 1) {// 在打印第 6 个数时换行if ((count % 5 == 0) && (count > 0)) {println('')}// 格式化输出每个数字,并每 5 个换一行print("${i.format('5.0')}")count++sum += i}return sum
}main(): Int64 {// 输入两个整数 A 和 Blet input = Console.stdIn.readln().getOrThrow().split(" ")let A = Int64.parse(input[0])let B = Int64.parse(input[1])// 计算整数区间和let result = calculateSum(A, B)// 输出结果println("\nSum = ${result}")return 0
}
代码详解
- 区间顺序确定:如果 A 大于 B,通过交换 A 和 B 来保证从小到大的顺序进行求和,确保无论输入顺序如何,结果都正确。
- 循环累加:遍历从 start 到 end 的所有整数,并将它们累加起来。
- 格式化输出:每输出 5 个整数时进行换行,使结果显示更加整齐,并确保区间和的正确性。
示例执行
示例 1:
输入:
5 1
输出:
1 2 3 4 5
Sum = 15
示例 2:
输入:
1 10
输出:
1 2 3 4 56 7 8 9 10
Sum = 55
示例 3:
输入:
-3 8
输出:
-3 -2 -1 0 12 3 4 5 67 8
Sum = 30
通过这些示例,程序能够正确地处理不同范围的整数求和,并按照格式化要求输出结果。
小结
本篇通过实现 PTA 题目 L1-008 求整数段和,练习了循环控制结构和区间运算,强化了Cangjie语言的数学运算和格式化输出能力。在处理区间和时,通过合理的循环结构解决了正反区间的求和问题。
下篇预告
下一篇将继续进行PTA刷题,讲解 L1-009 N个数求和 的解题思路与实现,敬请期待 「Mac玩转仓颉内测版18」PTA刷题篇9 - L1-009 N个数求和。
上一篇: 「Mac玩转仓颉内测版16」PTA刷题篇7 - L1-007 念数字
下一篇: 「Mac玩转仓颉内测版18」PTA刷题篇9 - L1-009 N个数求和
作者:SoraLuna
链接:https://www.nutpi.net/thread?topicId=174
來源:坚果派
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。