POJ1320 Street Numbers【佩尔方程】
2015-03-19 21:58
330 查看
题目链接:
http://poj.org/problem?id=1320
题目大意:
求解两个不相等的正整数N、M(N<M),使得 1 + 2 + … + N = (N+1) + … + M。输出前10组满足要求
的(N,M)。
思路:
要使 1 + 2 + … + N = (N+1) + … + M,那么 N*(N+1)/2 = (M-N)(M+N+1)/2,即
(2*M+1)^2 - 8*N^2 - 1,令x = 2*M + 1,y = N,就有x^2 - 8*y^2 = 1,就变成了典型的佩尔方程,
已知x1 = 3,y1 = 1,由迭代公式得:
xn = x(n-1)*x1 + d*y(n-1)*y1
yn = x(n-1)*y1 + y(n-1)*x1
那么
x(n+1) = 3*xn + 8*yn
y(n+1) = xn + 3*yn
AC代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int x,y,x1,y1,px,py,d;
x1 = px = 3;
y1 = py = 1;
d = 8;
for(int i = 1; i <= 10; ++i)
{
x = px*x1 + d*py*y1;
y = px*y1 + py*x1;
printf("%10d%10d\n",y,(x-1)/2);
px = x;
py = y;
}
return 0;
}
http://poj.org/problem?id=1320
题目大意:
求解两个不相等的正整数N、M(N<M),使得 1 + 2 + … + N = (N+1) + … + M。输出前10组满足要求
的(N,M)。
思路:
要使 1 + 2 + … + N = (N+1) + … + M,那么 N*(N+1)/2 = (M-N)(M+N+1)/2,即
(2*M+1)^2 - 8*N^2 - 1,令x = 2*M + 1,y = N,就有x^2 - 8*y^2 = 1,就变成了典型的佩尔方程,
已知x1 = 3,y1 = 1,由迭代公式得:
xn = x(n-1)*x1 + d*y(n-1)*y1
yn = x(n-1)*y1 + y(n-1)*x1
那么
x(n+1) = 3*xn + 8*yn
y(n+1) = xn + 3*yn
AC代码:
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
int x,y,x1,y1,px,py,d;
x1 = px = 3;
y1 = py = 1;
d = 8;
for(int i = 1; i <= 10; ++i)
{
x = px*x1 + d*py*y1;
y = px*y1 + py*x1;
printf("%10d%10d\n",y,(x-1)/2);
px = x;
py = y;
}
return 0;
}
相关文章推荐
- POJ 1320:Street Numbers——佩尔方程
- POJ - 1320 - Street Numbers - (佩尔方程)
- POJ 1320 Street Numbers 佩尔方程
- POJ1320 Street Numbers【佩尔方程】
- POJ 1320Street Numbers(佩尔方程定理)
- POJ1320 Street Numbers(佩尔方程)
- POJ 1320 Street Numbers 解佩尔方程
- POJ 1320 Street Numbers [佩尔方程]
- POJ 1320:Street Numbers 佩尔方程
- Poj1320佩尔方程见数论书115或者110页(暴力求解)
- POJ 1320 Street Number(佩尔方程)
- poj 1320 Street Numbers 解pell方程
- poj 1320 Street Numbers(解pell方程)
- poj-1320 Street Number 佩尔方程
- POJ 1320 Street Numbers 笔记
- 毕达哥拉斯三元组:poj 1305+佩尔方程:poj 1320,hdu 3292(特殊不定方程)
- poj 1320 佩尔方程递推
- POJ1320 UVA138 Street Numbers【Pell方程+数学】
- POJ 1320-Street Numbers(解佩尔方程)
- poj 1320——Street Numbers