首页
学习
活动
专区
圈层
工具
发布

hdu1058

作者头像
@坤的
发布2018-06-04 11:14:20
发布2018-06-04 11:14:20
2450
举报
文章被收录于专栏:*坤的Blog*坤的Blog

#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; }

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-01-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档