完全平方數

2022-06-23 13:39:14 字數 1354 閱讀 2838

動態規劃

對乙個數字n來說,組成n的完全平方數的最少個數等於n減去i*i(i*i<=n)後對應的那個數的完全平方數的最少個數加1.

所以我們從一開始來找組成完全平方數的最少個數,一直找到n,

舉個栗子

1  1>=1*1,1-1*1=0,組成0的完全平方數的最少個數為0,加1後變1,所以組成1的完全平方數的最少個數為1

2  2>=1*1,2-1*1=1,組成1的完全平方數的最少個數為1,加1後變2,所以組成2的完全平方數的最少個數為2

3  3>=1*1,3-1*1=2,組成2的完全平方數的最少個數為2,加1後變3,所以組成3的完全平方數的最少個數為3

4  4>=1*1,同時,4也》=2*2,這時,將這兩種情況分開來討論,取最小值,

第一種情況,4>=1*1,4-1*1=3,組成3的完全平方數的最少個數為3,加1後變為4,

第二種情況,4>=2*2,4-2*2=0,組成0的完全平方數的最少個數為0,加1後變為1,

由此可得,最小值為1,所以,組成4的完全平方數的最少個數為1

5  5>=1*1,同時,5也》=2*2,這時,將這兩種情況分開來討論,取最小值

第一種情況,5>=1*1,5-1*1=4,組成4的完全平方數的最少個數為1,加1後變為2

第二種情況,5>=2*2,5-2*2=1,組成1的完全平方數的最少個數為1,加1後變為2

由此可得,最小值為2,所以,組成4的完全平方數的最少個數為2

就這樣依此類推,理解**

#include#include

#include

#define max 0x3f3f3f3f

intmina;

using

namespace

std;

void num(int

n) ans.push_back(mina);

}cout

<

}int

main()

完全平方數

完全平方數 time limit 10000ms memory limit 65536k total submit 44 accepted 42 case time limit 1000ms description 由1 9九個數字組成的全排列可以被看作是乙個九位數,程式設計求出這些九位數中第n個完...

完全平方數

coding utf8 python3 題目 完全平方數 乙個整數,它加上100和加上268後都是乙個完全平方數 求該數是多少 數字 1,1000 中,符合條件的數 python sqrt num.py b 1 e 1000 import sys,getopt import math defint ...

完全平方數

程式設計判斷乙個非負整數是否為完全平方數。乙個非負整數n是完全平方數當且僅當存在非負整數m,使得n m2n m 2n m2。要求如下 輸出1表示是完全平方數,輸出0表示不是。比如,輸入非負整數0時,應輸出1。不能有其他多餘的cin和cout語句。注 0是完全平方數 include using nam...