X=a*k+b*t 问题

在一组数据中,若存在一个数是可以被其它数相加或其它几个数的倍数相加表示,则清除掉这个数。在这个问题中,我们可以采用递归的方法清除。


比如一组数据:2,3,7,15,25


先将数组排序,若 x=a [ i ] - a [ i - 1] , 存在标记,则说明x可以被表示。若不存在,则标记。这样做的目的是:先将a[i]标记,再逐步检查a [ i ]+1,a [ i ]+2,····,直到a [ i + 1 ],若中途存在a [ i ]的倍数,那它一定会被标记,再到a [ i ] - a [ i - 1],若可以被a [ i ]的倍数表示出来,那也会被标记。

posted @ 2025-02-16 19:04  _窗帘  阅读(8)  评论(0)    收藏  举报