topcoder SRM 610 DIV2 DivideByZero

OpenSoucre發表於2014-06-25

題目的意思是給你一組數,然後不斷的進行除法(注意是大數除以小數),然後將得到的結果加入這組數種然後繼續進行除法,

直到沒有新新增的數為止

此題按照提議模擬即可

注意要保持元素的不同

    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();
    }

 

相關文章