poj 1338 Ugly Numbers(丑数模拟)「建议收藏」

poj 1338 Ugly Numbers(丑数模拟)

大家好,又见面了,我是全栈君。

转载请注明出处:题目链接: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


PS:用一个长度为1500的数组存储这些数,另有三个游标x,y,z;


a[1]=1。x=y=z=1,代表第一个数为1,此后的数都是通过已有的数乘以2,3,5得到的,
那么x,y,z分别代表a[x],a[y],a[z]能够通过乘以2,3,5来得到新的数,i递增。每次取2*a[x], 3*a[y], 5*a[z]
中的最小值。得到a[i]后。能够将相应的x(或y,z)右移,当然假设原本通过3*2得到6,那么2*3也能得到6,
因此可能x和y都须要递增。


详见代码:

#include <iostream>
using namespace std;
int min(int a, int b, int c)
{
	return min(a,min(b,c));
}
int main()
{
	int a[1517];
	int x, y, z, i;
	x = y = z = 1, a[1] = 1;
	for(i = 2; i <= 1500; i++)
	{
		a[i] = min(2*a[x],3*a[y],5*a[z]);
		if(a[i] == 2*a[x])
		x++;
		if(a[i] == 3*a[y])
		y++;
		if(a[i] == 5*a[z])
		z++;
	}
	int n;
	while(cin >> n && n)
	{
		cout<<a[n]<<endl;
	}
	return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115414.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • onPropertyChange 事件详解

    先看这么一段解释:onpropertychange:当在对象上进行属性改变时候触发onchange:当对象内容或者选择内容改变时候触发当一个HTML元素的属性改变的时候,都能通过onpropertychange来捕获。例如一个&lt;inputname="text1"id="text1"/&gt;对象的value属性被页面的脚本修改的时候,onchange无法捕获到,…

    2022年4月6日
    157
  • JAVA String 截取字符串的方法(含 substring 索引截取示例)

    String.substring():用于返回一个字符串的子串用法如下:string.substring(from,to)其中from指代要抽去的子串第一个字符在原字符串中的位置to指代所要抽去的子字符串最后一个字符的后一位(这个参数可以不加)下面就对String.substring()做举例:1、string.substring(from):此时相当于从from位置截取到原字…

    2022年4月3日
    1.4K
  • RPC基本原理_基本原理是什么意思

    RPC基本原理_基本原理是什么意思RPC非常重要,很多人面试的时候都挂在了这个地方!你要是还不懂RPC是什么?他的基本原理是什么?你一定要把下边的内容记起来!好好研究一下!特别是文中给出的一张关于RPC的基本流程图,重点中的重点,Du

    2022年8月5日
    5
  • Python字符串转换为日期时间– strptime()「建议收藏」

    Python字符串转换为日期时间– strptime()「建议收藏」Wecanconvertastringtodatetimeusingstrptime()function.Thisfunctionisavailableindatetimeandtimemodulestoparseastringtodatetimeandtimeobjectsrespectively.我们可以使用strptime()函数将字…

    2022年6月2日
    104
  • 无线突然变叉,无法使用[通俗易懂]

    无线突然变叉,无法使用[通俗易懂]1.查看了驱动,是正常的2.查看了控制面板,“无线”是开启的2.win + r 输入 services.msc进入策略这个三个改为自动,重启电脑

    2022年8月18日
    4
  • PetShop4 下载地址

    PetShop4 下载地址http://download.microsoft.com/download/8/0/1/801ff297-aea6-46b9-8e11-810df5df1032/Microsoft%20.NET%20Pet%20Shop%204.0.msi转载于:https://www.cnblogs.com/Juniy/archive/2006/11/07/553351.html

    2022年10月17日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号