hdu1058
#include<iostream>
#include<string>
using namespace std;
int const N = 4;
int map[N] = {2,3,5,7};
int findMin(int arr[], bool flag[], int len)
{
int min = arr[0];
int i=0;
for(i=0; i<len; i++)
if(arr[i] < min)
min = arr[i];
for(i=0; i<len; i++)
{
if(min == arr[i])
flag[i] = true;
else
flag[i] = false;
}
return min;
}
void initHumble(int maxN, int humble[])
{
humble[1] = 1;
int pos[N] = {1,1,1,1};
int arr[N];
bool flag[N];
for(int i=2; i<=maxN; i++)
{
for(int j=0; j<N; j++)
arr[j] = humble[pos[j]]*map[j];
int min = findMin(arr, flag, N);
humble[i] = min;
for(int j=0; j<N; j++)
if(flag[j]) //相同的最小丑数在这里会被过滤掉
pos[j]++;
}
}
void outPut(int humble[])
{
int n;
while(cin>>n && n)
{
string str = "th";
if(n%10==1 && n%100!=11)
str = "st";
else if(n%10==2 && n%100!=12)
str = "nd";
else if(n%10==3 && n%100!=13)
str = "rd";
cout<<"The "<<n<<str<<" humble number is "<<humble[n]<<"."<<endl;
}
}
int main()
{
const int SIZE = 6000;
int humble[SIZE];
initHumble(5842, humble);
outPut(humble);
return 0;
}
hdu1058的更多相关文章
- hdu1058丑数(优先队列、暴力打表)
hdu1058 题意:当一个数只有2.3.5.7这四种质因数时(也可以一种都没有或只有其中几种),这个数就是丑数,输出第 n 个丑数是多少: 其实并没有发现hdu把这道题放在 dp 专题里的意图,我的 ...
- HDU1058 DP
Humble Numbers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- HDU1058 Humble Numbers 【数论】
Humble Numbers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- hdu-1058(map)
题意:输出第n个能拆分成由,2,3,5,7中的一个或者多个组成的数: 解题思路:a[i+1]=a[i]*2;a[i+2]=a[i]*3;a[i+3]=a[i]*5;a[i+4]=a[i]*7;然后把重 ...
- Humble Numbers(hdu1058)
Humble Numbers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- hdu-1058(动态规划)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1058 题意:求只由2,3,5,7的乘积组成的数,输出格式见output 思路:开始想打表,后来打表超时 ...
- HDU1058 - Humble Numbers
A number whose only prime factors are 2,3,5 or 7 is called a humble number. The sequence 1, 2, 3, 4, ...
- DP 60题 -3 HDU1058 Humble Numbers DP求状态数的老祖宗题目
Humble Numbers Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) T ...
- DP录 (更新)
补补弱项 全面发展.. 从最基础来 sdut1299最长上升子序 #include <iostream> #include<cstdio> #include<cstrin ...
随机推荐
- Docker Copy On Write
Container分成结构 Container最上面是一个可写的容器层,以及若干只读的镜像层组成,Container的数据就存放在这些层中,这样的分层结构最大的特性是Copy-On-Write: 1. ...
- hdu 5475 线段树
An easy problem Time Limit: 8000/5000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) ...
- css的伪类选择器的使用
伪类选择器,在不同情况下显示的css,伪类选择器在处理页面的美观是很大帮助.其实很多美丽的按钮或者页面都是有这些基础的知识实现的,掌握好基础很重要. 名字 实例 说明 :link a:link 选择所 ...
- 从request中读数据流
ServletInputStream servletInputStream = reqeust.getInputStream(); int len=0; int size=reqeust.getCon ...
- idea中java异常
1. Compilation failed: internal java compiler error 解决方案:File-->Setting...-->Build,Execution,D ...
- POJ 2240 Arbitrage(Floyed-Warshall算法)
题意:给出n种货币,m种兑换比率(一种货币兑换为另一种货币的比率),判断测试用例中套汇是否可行.(套汇的意思就是在经过一系列的货币兑换之后,是否可以获利.例如:货币i→货币j→货币i,这样兑换后,是否 ...
- Git_错误_03_ Git提交时显示用户 unknown
这是因为没有设置用户名 $ git config --global user.name "your_name" $ git config --global user.email & ...
- conda 里的 jupyter
1. 安装conda https://mirrors.tuna.tsinghua.edu.cn/anaconda/ 下载并安装. 2. 安装jupyter (1)在ananconda主环境安装:pip ...
- linux命令学习笔记(58):telnet命令
telnet命令通常用来远程登录.telnet程序是基于TELNET协议的远程登录客户端程序.Telnet协议是TCP/IP协议族 中的一员,是Internet远程登陆服务的标准协议和主要方式.它为用 ...
- JSTL标签提示:"items" does not support runtime expressions
今天在使用JSTL的 c:forEach 标签时,jsp提示:"items" does not support runtime expressions,后来才发现是因为taglib ...