本題要求對任意給定的正整數N,求方程X2+Y2=N的全部正整數解。
輸入格式:
輸入在一行中給出正整數N(≤10000)。
輸出格式:
輸出方程X2+Y2=N的全部正整數解,其中X≤Y。每組解占1行,兩數字間以1空格分隔,按X的遞增順序輸出。如果沒有解,則輸出No Solution
。
輸入樣例1:
884
輸出樣例1:
10 28
20 22
輸入樣例2:
11
輸出樣例2:
No Solution
代碼如下
#include<stdio.h> int main() { int N; int i,j,m=0; scanf("%d",&N); for(j=1;j<=100;j++) { for(i=1;i<=100;i++) if((i*i+j*j==N)&&(j<i)) { printf("%d %d\n",j,i); ++m; } } if(m==0) printf("No Solution"); }
小結:
我在如何輸出No Solution這里卡住了小半天,最后想到一個結果也沒有不就是0么,於是乎想到了計數。這也多虧了看到過類似的題。
總體來說經驗欠缺,編題較少,我會繼續努力。