hdu 1058 Humble Numbers
来源:互联网 发布:软件测试三角形问题 编辑:程序博客网 时间:2024/06/05 00:52
hdu 1058 Humble Numbers 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1058
类型纠结中……可以算DP么?
题目大意:新定义了一种数叫Humble Number,这种数的因子中除了2、3、5、7,就没有别的质数了,把这种数排成一列,输入n,输出Humble[n]。
题目分析:最大到了二十亿,肯定是要打表了,还要从小到大找,不得不说代码中那种方法比较神奇。还有个问题就是序数词后缀,英语不是太烂的肯定so easy。
code:
#include<stdio.h>#include<string.h>int min(int a,int b){return a<b?a:b;}int min4(int a,int b,int c,int d){return min(min(a,b),min(c,d));}void assign(char*s,char*c){int i,n=min(strlen(s),strlen(c));for(i=0;i<n;i++)s[i]=c[i];}int main(){int a,b,c,d,e1,e2,e3,e4,i,p[6000];p[1]=a=b=c=d=1;for(i=2;i<6000;i++){e1=p[a]*2;e2=p[b]*3;e3=p[c]*5;e4=p[d]*7;p[i]=min4(e1,e2,e3,e4);if(p[i]==e1)a++;if(p[i]==e2)b++;if(p[i]==e3)c++;if(p[i]==e4)d++;}while(scanf("%d",&a),a){char s[3]="ab";b=a%100/10;c=a%10;if(c>0&&c<4)if(b==1)assign(s,"th");else if(c==1)assign(s,"st");else if(c==2)assign(s,"nd");else assign(s,"rd");else assign(s,"th");printf("The %d%s humble number is %d.\n",a,s,p[a]);}return 0;}PS:参考的那一篇说这是DP,感觉似乎有点勉强吧……我把它归到数学模拟了。
0 0
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- hdu 1058 humble numbers
- hdu 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- HDU 1058 Humble Numbers
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU-1058 Humble Numbers
- hdu 1058 Humble Numbers
- HDU 1058 Humble Numbers
- HDU 1058 Humble Numbers
- hdu 1058 Humble Numbers
- ACM题集以及各种总结大全!
- extjs进度条设置
- Android 实现View中添加子元素的动态效果
- Mysql压测工具mysqlslap 讲解
- SQL语句执行效率及分析
- hdu 1058 Humble Numbers
- Servlet 3.0 实战:异步 Servlet 与 Comet 风格应用程序
- Windows CE /SmartDeviceProject 操作Json数据实现对象序列化和反序列化
- SendMessage与PostMessage的区别
- 关于一个在Intellij Idea中打包正常,tomcat启动也正常,但在浏览器中访问出404的问题的原因分析
- 模态视图
- 《筑墙——只需一点点安全常识就能阻止网络犯罪》
- DOS命令窗口进行java类的打包编译命令
- 单反镜头手机适配器