李時珍的面板衣 快速冪

2022-03-19 19:34:31 字數 944 閱讀 2699

lsz很皮!lsz的**衣更皮!

lsz有很多件神奇的**衣,而且lsz總是喜歡一次穿上多件**衣(一件套一件,而且一直穿好多天),這些**衣有透明或不透明兩種狀態,當不透明的**衣吸收了一天的陽光直射後,就會變成透明的**衣,透明的**衣能使陽光照射到裡層**衣,而透明的**衣再吸收陽光,會在第二天會變成不透明的**衣,不透明的**衣會阻止陽光照射到裡層**衣。

lsz從某天起(該天算作第1天)穿上n件**衣(剛開始所有**衣都是不透明的),問你最少要經過多少天,lsz身上的**衣都經歷過透明變化?

例如今天(公元2023年6月17日)lsz穿了3件**衣服,會在公元2023年6月21日3件**衣都會經歷過透明變化。

輸入格式

一行,只有乙個整數n。

輸出格式

最少的天數(對n取餘數)

樣例樣例輸入1

3
樣例輸出1
2
樣例1解釋

使用0代表**衣透明狀態。

使用1代表**衣不透明的狀態。

5對3取餘數為2。

樣例輸入2

5
樣例輸出2
2
這題顯然是要找規律,經過大量打表,發現答案滿足乙個公式:

(2^(n-1)+1)mod(n)

當然這種指數極的東西直接暴力會爆掉,就需要用到快速冪:

#include #include #includeusing namespace std;

typedef long long ll;

ll power(ll x,ll y,ll mod)

cnt = (cnt*cnt)%mod;

y >>= 1;

}return ans;

}int main()

整數的冪運算 快速冪

題目描述 給定乙個double型別的浮點數base和int型別的整數exponent。求base的exponent次方。一開始最簡單的思路是,用乙個while迴圈直接乘出結果,太簡單 就不貼了,複雜度是o n 發現有更快的演算法,叫快速冪,複雜度為o lgn public class solutio...

C語言快速冪及快速冪的模

未學習快速冪時我們的冪 power 運算一般都是通過for,while迴圈來進行的如 int power int a,int n 這樣其時間複雜度為o n 十分浪費時間。這時如果我們使用快速冪其時間複雜度將降到o logn 我們的運算效率將大大提公升。那麼我們要怎麼樣進行快速冪運算呢?快速冪演算法是...

快速冪和快速冪取模的演算法

後話基本原理請參見遞迴形式的 快速冪的非遞迴形式 long long int mi long long int a,int b return sum 快速冪的遞迴形式 long long int mi int a,int b 這裡涉及的原理除了快速冪之外,還涉及到我現在數學沒學到的乙個定理 多個數的...