topcoder SRM 610 DIV2 DivideByZero

题目的意思是给你一组数,然后不断的进行除法(注意是大数除以小数),然后将得到的结果加入这组数种然后继续进行除法,

直到没有新添加的数为止

此题按照提议模拟即可

注意要保持元素的不同

    int CountNumbers(vector <int> numbers) {
        set<int> ss(numbers.begin(),numbers.end());
        bool flag = true;
        while(flag){
            flag = false;
            for(int i = 0 ; i < numbers.size(); ++ i ){
                for(int j = 0 ; j < numbers.size(); ++ j ){
                    if(numbers[i] > numbers[j] && ss.find(numbers[i]/numbers[j])==ss.end()) {
                        ss.insert(numbers[i]/numbers[j]);
                        numbers.push_back(numbers[i]/numbers[j]);
                        flag = true;
                    }
                }
            }
        }
        return ss.size();
    }
原文地址:https://www.cnblogs.com/xiongqiangcs/p/3808364.html