本文共 599 字,大约阅读时间需要 1 分钟。
三角形数是能够排列成等边三角形的点数,例如1个点构成第一个三角形,3个点构成第二个,以此类推。第n个三角形数可以通过公式n(n+1)/2计算得到。对于给定的k值,我可以通过判断k的奇偶性来决定使用不同的公式计算。如果k是偶数,结果是(k/2)(k+1);如果k是奇数,结果是(k+1)/2k。
为了满足题目的需求,我编写了一个程序来处理多个输入查询,每次计算并输出第k个三角形数。程序使用unsigned long long来存储结果,确保精度和范围。
以下是代码示例:
#includeint main() { unsigned long long k; while (scanf("%llu", &k) != EOF) { if (k % 2 == 0) { printf("%llu\n", (k / 2) * (k + 1)); } else { printf("%llu\n", ((k + 1) / 2) * k); } } return 0;}
代码的实现逻辑:
这个解决方案快速且高效,满足题目的要求。
转载地址:http://bcxhz.baihongyu.com/