本文主要是介绍UVA138 - Street Numbers(等差数列),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
UVA138 - Street Numbers(等差数列)
题目链接
题目大意:找十组这样的数(a,b) 满足 1到a-1的和等于 a + 1到b的和。
解题思路:根据等差数列的性质可以得到:a (a - 1) == (a + 1 + b) (b - a)化简得
b^2 + b - 2a^2 = 0; 这样b = (sqrt(1 + 8a^2) - 1) / 2;
代码:
#include <cstdio>
#include <cstring>
#include <cmath>typedef long long ll;
const int maxn = 10;int main () {ll a = 1;double b;int cnt = 0;while (cnt < maxn) {a++;b = (sqrt(a * a * 8 + 1.0) - 1) / 2;if (b == floor(b)) {printf ("%10lld%10.0lf\n", a, b);cnt++;}}return 0;
}
这篇关于UVA138 - Street Numbers(等差数列)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!