歐幾里得算法及其應用

對於不完全爲0的非負整數a,b,c,gcd(a,b)表示a,b的最大公約數,必然存在整數x,y,使得gcd(a,b)=ax+by;



//最大公約數


int mod(int a,int b)//取模

{

return b?mod(b,a%b):a;

}

倒水問題

有兩個容器,容積分別爲A升和B升,有無限多的水,現在需要C升水。 我們還有一個足夠大的水缸,足夠容納C升水。起初它是空的,我們只能往水缸裏倒入水,而不能倒出。 可以進行的操作是: 把一個容器灌滿; 把一個容器清空(容器裏剩餘的水全部倒掉,或者倒入水缸); 用一個容器的水倒入另外一個容器,直到倒出水的容器空或者倒入水的容器滿。     問是否能夠通過有限次操作,使得水缸最後恰好有C升水。 輸入:三個整數A, B, C,其中 0 < A , B, C <= 1000000000 輸出:0或1,表示能否達到要求。


bool can(int a,int b,int c) {
int res;
res=mod(a,b);

if(c%res==0)
return true;
else
return false;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章