uva 138——Street Numbers
生活随笔
收集整理的這篇文章主要介紹了
uva 138——Street Numbers
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題意:一個老師閑來無事就從他家門口向前走,然后累加門牌數,最后發現向前走和向后累加到的門牌數一樣,然后讓求該老師家的門牌數,枚舉出前6個。
思路:假設門牌數為1-n,該老師的門牌號為m,那么可以直接推出2m^2=n^2+n(二項式定理),下面對于該題的處理方式有兩種,一個是暴力枚舉,當然這個不再多說,另一個是化成x^2+y^2=r的不定方程的形式,然后用佩爾方程解題,渣渣表示只會套用佩爾方程,中間的證明過程還是不甚理解!配上某牛的佩爾方程解法:
http://www.cnblogs.com/devymex/archive/2010/09/07/1818983.html
code:
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int i,ca=1;
for (i=6;ca<=10&&i<100000000;i++) //直接暴力了
{
double t=sqrt(0.5*(i+1)*i);
int t2=(int)t;
if (t==t2)
{
printf("%10d%10d\n",t2,i);
ca++;
}
}
}
思路:假設門牌數為1-n,該老師的門牌號為m,那么可以直接推出2m^2=n^2+n(二項式定理),下面對于該題的處理方式有兩種,一個是暴力枚舉,當然這個不再多說,另一個是化成x^2+y^2=r的不定方程的形式,然后用佩爾方程解題,渣渣表示只會套用佩爾方程,中間的證明過程還是不甚理解!配上某牛的佩爾方程解法:
http://www.cnblogs.com/devymex/archive/2010/09/07/1818983.html
code:
#include <iostream>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int i,ca=1;
for (i=6;ca<=10&&i<100000000;i++) //直接暴力了
{
double t=sqrt(0.5*(i+1)*i);
int t2=(int)t;
if (t==t2)
{
printf("%10d%10d\n",t2,i);
ca++;
}
}
}
總結
以上是生活随笔為你收集整理的uva 138——Street Numbers的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 地下城与勇士好卡,怎么办
- 下一篇: 不孕症做什么检查