最小生成元 java

2021-08-16 10:03:32 字數 676 閱讀 8232

如果x加上x的各個位數字之和得到y,就說x是y的生成元;給出n,(1<=n<=100000),求最小生成元。

無解輸出0.

例如,n=216,121,2005時的解分別為198,0,1979。

198 + 1 + 9 + 8 = 216;

1979 + 1 + 9 + 7 + 9 = 2005;

我的思路如下:

1.從0找到n所有的數字

2.將這些數字轉成string存入arraylist中

3.遍歷這些數字

4.利用charat()來獲取每個數字的下標,再將他們轉換為integer型別。

5.繼續遍歷每個數字,把他們數字下標進行相加。

6.如果結果跟n相等,則當前的數字便是,而且也是最小。

求解最小生成元

前言 因為看著劉汝佳的演算法書學習的演算法,今天聊聊最小生成元,關於這一點我覺得書上的方法有些不妥,因為就拿出來說說,這個演算法相對還是比較簡單的。最小生成元問題描述 如果x加上x的各個位數字之和得到y,就說x是y的生成元 給出n,1 n 100000 求最小生成元。無解輸出0。例如,n 216,1...

UVa1583 最小生成元 只需列舉幾十次的演算法

在劉汝佳老師的 演算法競賽入門經典 第2版 52頁例題3 5中看到此題,發現此題並不需要列舉太多,實際上只需要列舉很少的值即可。例題 3 5 生成元 digit generator,acm icpc seoul 2005,uva1583 如果x加上x的各個數字之和得到y,就說x是y的生成元。給出n ...

基因與生成元演算法

本章繪圖要點 生成元演算法 重複性的繪圖步驟可抽象提煉成資料,儲存在列表或元組裡,然後,依據抽象規則,讀取資料,呼叫繪圖函式,生成所需要的圖形,從而降低程式的複雜性,減少程式的 量。繪圖效率 當圖形的資料計算量比較大時,可先統一計算,然後再繪圖,從而提高圖形的生成效率。一生二,二生三 道生一,一生二...