题意:
notepad里只有一个’A’字符串。 只能允许两个操作:
- Copy All: 把notepad里所有的字符串copy
- Paste: 复制上次copy的内容
问,最少的步骤(copy & paste) 能生成n个’A’
分析
可以发现规律:
n | op | cur char |
---|---|---|
2 | c | A |
p | AA | |
3 | c | A |
p | AA | |
p | AAA | |
4 | c | A |
p | AA | |
c | AA | |
p | AAAA | |
5 | c | A |
p | AA | |
p | AAA | |
p | AAAA | |
p | AAAAA | |
6 | c | A |
p | AA | |
c | AA | |
p | AAAAA | |
p | AAAAAA |
当n为质数, 所需最少步骤为n; 当n不是质数, 所需步骤为 n的质因数相加之和。比如6 = 2 x 3;它所需最小步骤 2+3 = 5
Solution 1: 质因数分解
1 | int minSteps(int n) { |
Solution 2:
1 | int minSteps(int n) { |
scan qr code and share this article