zoukankan      html  css  js  c++  java
  • poj 1338 Ugly Numbers

    Ugly Numbers
    Time Limit: 1000MS   Memory Limit: 10000K
    Total Submissions: 21649   Accepted: 9680

    Description

    Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 
    1, 2, 3, 4, 5, 6, 8, 9, 10, 12, ... 
    shows the first 10 ugly numbers. By convention, 1 is included. 
    Given the integer n,write a program to find and print the n'th ugly number. 

    Input

    Each line of the input contains a postisive integer n (n <= 1500).Input is terminated by a line with n=0.

    Output

    For each line, output the n’th ugly number .:Don’t deal with the line with n=0.

    Sample Input

    1
    2
    9
    0
    

    Sample Output

    1
    2
    10

    由题意可知这个数一定是2或3或5的倍数则每次取这三个数的倍数中最小的那个即可
    注意:数据范围超过了int型 应该使用long long或者int_64
    #include<stdio.h>
    #include<string.h>
    #define MAX 1510
    #define min(x,y)(x<y?x:y)
    long long ugly[MAX];
    int main()
    {
    	int n,m,j,i;
    	int a,b,c;
    	int u2,u3,u5;
    	u2=1;u3=1;u5=1;
    	ugly[1]=1;
    	for(i=2;i<MAX;i++)
    	{
    		a=2*ugly[u2];
    		b=3*ugly[u3];
    		c=5*ugly[u5];
    		ugly[i]=min(a,min(b,c));
    		if(ugly[i]==a) u2++;
    		if(ugly[i]==b) u3++;
    		if(ugly[i]==c) u5++;
    	}
    	while(scanf("%d",&n),n)
    	{
    		printf("%d
    ",ugly[n]);
    	}
    	return 0;
    } 
    

      

  • 相关阅读:
    复习正则表达式20190618
    python每日练习10题2
    java多线程
    资源2
    apache
    行转列,列转行
    mysql5.7安装(正确安装)实战
    常见规则引擎技术
    Spark性能优化之道——解决Spark数据倾斜(Data Skew)的N种姿势
    Vue开源项目库汇总
  • 原文地址:https://www.cnblogs.com/tonghao/p/4595268.html
Copyright © 2011-2022 走看看