2015-02-08 55 views
0

所以我對我的生活無法弄清楚如何去做這件事。所以我想要做的是有順序格式保存的選項。例如:保存在序列中的選項

Option A = 1 
Option B = 2 
Option C = 4 
Option D = 8 
Option E = 16 

因此,如果我們有人打勾選項A和C這將從根本上設置一個變量Option = A + C = 5

所以在程序啓動加載Option = 5,並從那裏決定選擇A和C打勾時。我知道我可以對所有31種可能性使用if語句,但這看起來像是一種天馬行空的方式,而且必須是一種更簡單的方式。事實上,我很喜歡90%的代碼,我確信我在以前的程序中沒有使用額外的代碼,但不記得我是如何處理它的。

任何幫助都會很棒。謝謝。

回答

0

經過一番睡眠後發現它。也許有一種更簡單的方法,但我基本上將計數器加倍,直到它是目標編號之前的序列中的數字,然後在檢查總數的同時進行分割。如果總數大於目標,那麼它沒有保存這個總數。如果它更少,則將其保存並添加到一個字符串中,列出所有用分號分隔的數字。

舉一個例子,假設我們的目標號碼是2482。 (對我的目的不切實際,但仍然只是一個例子)

該程序決定下一個數字在目標下面的順序是2048,然後除以2 1024。然後它檢查是否超出了目標。 2048 + 1024 = 3072 > 2482。因爲它更大,它忽略它。繼續前進直到找到256然後檢查。 256 + 2048 = 2304 < 2482所以它保持它。 Total = 2304。程序不斷重複這個過程,直到總數等於目標。所以我們的模式是2048;256;128;32;16;2;。我交叉引用存儲在INI文件中的所有這些數字,以查看每個數據的作用。

無論如何,如果其他人決定他們希望使用序列,希望我已經幫助。