演算法筆記 數學問題

2021-10-06 15:48:25 字數 1213 閱讀 2480

原題鏈結

原理:最大公約數:遞迴 歐幾里得演算法

最小公倍數:得到a,b的最大公約數d 最小公倍數=a/d*b;

#include

#include

intgcb

(int a,

int b)

//求最大公約數

intmain()

printf

("%d\n"

,d);}}

return0;

}

#include

#include

#include

struct bign};

bign change

(char str)

//將整數轉化為bign

return a;

}int

compare

(bign a,bign b)

return0;

}}bign add

(bign a,bign b)

if(carry!=0)

return c;

}bign sub

(bign a,bign b)

c.d[c.len++

]=a.d[i]

-b.d[i];}

while

(c.len-

1>=

1&&c.d[c.len-1]

==0)//去除最高位 同時至少保留一位最低位

return c;

}bign multi

(bign a,

int b)

//高精度與高精度的乘法

while

(carry!=0)

//乘法的進製可能不只一位

}bign divide

(bign a,

int b,

int& r)

}//處理高位0

while

(c.len-

1>=

1&&c.d[c.len-1]

==0)return c;

}void

printf

(bign a)

}int

main()

else

printf

(sub

(a,b));

return0;

}

演算法很美之數學問題

描述 今天我們要認識一對新朋友,alice與bob。alice與bob總是在進行各種各樣的比試,今天他們在玩乙個取石子的遊戲。在這個遊戲中,alice和bob放置了n堆不同的石子,編號1 n,第i堆中有a i 個石子。每一次行動,alice和bob可以選擇從一堆石子中取出任意數量的石子。至少取1顆,...

演算法筆記 簡單數學問題的題解

題目描述 乙個正整數有可能可以被表示為n 109 n 2 個連續正整數之和,如 15 1 2 3 4 5 15 4 5 6 15 7 8 根據輸入的任何乙個正整數,找出符合這種要求的所有連續正整數序列。輸入格式 乙個正整數。輸出格式 輸出符合題目描述的全部正整數序列,每行乙個序列,每個序列都從該序列...

2018 6 18 數學問題

define crt secure no deprecate 求正整數n的質因數的個數。120 2 2 2 3 5 所以最後輸出時5 10 9 n至多只存在乙個大於sqrt n 的素因數 這裡只需要篩選到100000就可以 通過素數表,不斷試除,最後求出各個冪指數的和 include 素數表找到10...