正整數n拆分成幾個不同的平方數 DFS 打表

2022-05-02 01:12:14 字數 491 閱讀 4151

考慮將正整數n拆分成幾個不同的平方數之和,比如30=1^2 + 2^2 + 5^2=1^2 + 2^2 + 3^2 + 4^2,而8不存在這樣的拆分。

1 #include2

using

namespace

std;34

const

int maxn = 1000 + 10;5

bool

vis[maxn];

6 vectorres;78

bool dfs(intn)9

22}23return

false;24

}2526int

main()

2734

35return0;

36 }

只有31個數無法分解:2,3,6,7,8,11,12,15,18,19,...,108,112,128,在10^18內只有31個,更大的沒有驗證。

題目鏈結

將乙個正整數L隨機拆分成n個正整數

隨機指定範圍內n個不重複的數 最簡單最基本的方法 param min 指定範圍最小值 param max 指定範圍最大值 param n 隨機數個數 public static int randomcommon int min,int max,int n int result new int n i...

c 正整數拆分成素因子的乘積

include 設計演算法,將某個大於1的數分成素因子的乘積 6 2 3 7 7 8 2 2 2 1.判斷當前數是不是素數,是直接返回 2.否則,迴圈直到第乙個它能整除的素數,當前數變為除以素數後的商,繼續大迴圈。判斷乙個數是不是素數 include bool isprime int x retur...

正整數n的k拆分問題

演算法小菜鳥剛開始做poj,1664是乙個關於整數拆分的問題,即 將正整數n拆分成k個不能整數的和,0 k n,求有多少種差分方法。比如 將7差分成3個不同整數的拆分法有8中,其中1,1,5和1,5,1屬於同一種拆分法。該問題等同於 將n個完全相同的物品放到k個完全相同的容器中,求有多少種方法。由於...