POJ 1338 & UVA 136

思路:用2,3,5分別求積得到所有的醜數,再排序後求第n個

#include<iostream>
#include<algorithm>

using namespace std;

const int maxN = 1500;

int main()

{   
    int a[maxN];
    int pos = 0;
    for(int i = 1; i < 100; i*=2)
      for(int j = 1; j < 100; j *= 3)
	for(int k = 1; k < 100; k *=5)
	{
	  a[pos++] = i*j*k;
	  if(pos >= maxN)
	    break;
	}
    sort(a, a+pos);
    int input;
    std::cin >> input;
    while(input != 0){
      cout <<  a[input-1] << endl;
      cin >> input;
    }
    
    
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章