求8的倍数的算法,该如何处理

求8的倍数的算法我现在有a1,a2,a3,a4.......an个数它们的和为X,现在要求如果X800并且不是8的倍数的话,就

求8的倍数的算法
我现在有a1,a2,a3,a4.......an个数它们的和为X,
现在要求如果X>800并且不是8的倍数的话,就在a1至an之中抽出最少个的方面,让X成为8的倍数
知道请告诉我

[解决办法]
如果
X MOD 8 = 
0 那不用处理了
7 找An中模数为1的,只会是一个
6 An模为2的,有,就一个,没有,找两个模为1的,
其它类推广.
[解决办法]

引用楼主 Tomoyo 的帖子:
我现在有a1,a2,a3,a4.......an个数它们的和为X,
现在要求如果X>800并且不是8的倍数的话,就在a1至an之中抽出最少个的方面,让X成为8的倍数
知道请告诉我