51nod 1080 兩個數的平方和

2021-07-28 08:58:49 字數 1040 閱讀 2102

1080 兩個數的平方和

基準時間限制:1 秒 空間限制:131072 kb 分值: 5 

難度:1級演算法題

給出乙個整數n,將n表示為2個整數i j的平方和(i <= j),如果有多種表示,按照i的遞增序輸出。

例如:n = 130,130 = 3^2 + 11^2 = 7^2 + 9^2 (注:3 11同11 3算1種)

input

乙個數n(1 <= n <= 10^9)
output

共k行:每行2個數,i j,表示n = i^2 + j^2(0 <= i <= j)。

如果無法分解為2個數的平方和,則輸出no solution

input示例

130
output示例

3 11

7 9

二分水題

#include #include#include#include#include#includeusing namespace std;

int fn(int i,int s,int e,int ans) //i當前查到的數, s表示查詢範圍的起點,e表示查詢範圍的終點,ans表示最終所需要的平方和

return -1;

}int main()

{ int n;

cin>>n;

int flag=0;

double c=sqrt(n);

for(int i=0;i<=(int)c;i++)

{int ans1=fn(i,i,(int)c+1,n);

if(ans1!=-1)

{flag=1; cout或者直接水題

#include #include#include#include#include#includeusing namespace std;

int main()

{ int n;

cin>>n;

int flag=0;

for(int i=0;i*i

51nod 1080 兩個數的平方和

1080 兩個數的平方和 基準時間限制 1 秒 空間限制 131072 kb 分值 5 難度 1級演算法題 給出乙個整數n,將n表示為2個整數i j的平方和 i j 如果有多種表示,按照i的遞增序輸出。例如 n 130,130 3 2 11 2 7 2 9 2 注 3 11同11 3算1種 inpu...

51nod1080 兩個數的平方和

給出乙個整數n,將n表示為2個整數i j的平方和 i j 如果有多種表示,按照i的遞增序輸出。例如 n 130,130 3 2 11 2 7 2 9 2 注 3 11同11 3算1種 input 乙個數n 1 n 10 9 output 共k行 每行2個數,i j,表示n i 2 j 2 0 i j...

51nod1080 兩個數的平方和

給出乙個整數n,將n表示為2個整數i j的平方和 i j 如果有多種表示,按照i的遞增序輸出。例如 n 130,130 3 2 11 2 7 2 9 2 注 3 11同11 3算1種 input 乙個數n 1 n 10 9 output 共k行 每行2個數,i j,表示n i 2 j 2 0 i j...