不定方程求解 列舉

2021-09-12 06:42:39 字數 718 閱讀 8356

小蒜給定正整數 a,b,c。求不定方程 ax + by = c 關於未知數 x 和 y 的所有非負整數解組數。

輸入格式

一行,包含三個正整數 a,b,c,兩個整數之間用單個空格隔開。每個數均不大於 1000。

輸出格式

乙個整數,即不定方程的非負整數解組數。

輸出時每行末尾的多餘空格,不影響答案正確性

樣例輸入

2 3 18

樣例輸出

4給定乙個二元一次方程: ax + by = c

輸入a b c,然後輸出所有可能解的個數。

限定條件: a,b,c 均為正整數,x,y為非負整數。

分析:首先,二元一次方程的解經上述條件的限制,必定有有限個解。而對於 ax+by=c 猜測(a,b,c,x,y 均為整數):

這一步分析 比較核心 有時間多看看 多琢磨琢磨 畢竟一開始沒有看懂 比較解題技巧比較有新意

(1) 當 a < b時:方程至多有 m=c/a 個解。

(2) 當 b < a時:方程至多有 m=c/b 個解。

可以用此條件來減少些計算量。

解題思路1:

#include #include #include using namespace std; 

int main(void)

}printf("%d\n", count);

return 0;

}

不定方程求解

不定方程ax by c,對於給定的係數a和b 常數項c,求出在區間p q範圍內方程的乙個整數解x y,滿足x和y不全為0且x取值最大。題目保證a b c x y p q都是 10000 10000範圍之內的整數。輸入分為兩部分,第一部分是三個整數a b c且a b不為0,第二部分包含多組輸入,每組輸...

4139 不定方程求解

總時間限制 1000ms 記憶體限制 65536kb 描述給定正整數a,b,c。求不定方程 ax by c 關於未知數x和y的所有非負整數解組數。輸入一行,包含三個正整數a,b,c,兩個整數之間用單個空格隔開。每個數均不大於1000。輸出乙個整數,即不定方程的非負整數解組數。樣例輸入 2 3 18 ...

Problem E 不定方程求解

description 不定方程ax by c,對於給定的係數a和b 常數項c,求出在區間p q範圍內方程的乙個整數解x y,滿足x和y不全為0且x取值最大。題目保證a b c x y p q都是 10000 10000範圍之內的整數。input 輸入分為兩部分,第一部分是三個整數a b c且a b...