hdu 1058
2015-09-06 21:14
197 查看
点击打开链接
题意:只有2,3,5,7这几个质因子的数成为丑数,找出前5842个丑数
题目较水,这里说一点需要注意的地方,计算所有丑数时的if语句是并列的,不能用else if 这种形式,目的是为了排除相同的情况,具体可用 2,3分别乘以3 , 2进行一下推理
题意:只有2,3,5,7这几个质因子的数成为丑数,找出前5842个丑数
题目较水,这里说一点需要注意的地方,计算所有丑数时的if语句是并列的,不能用else if 这种形式,目的是为了排除相同的情况,具体可用 2,3分别乘以3 , 2进行一下推理
#include <iostream> #include <stdio.h> #include <cstring> #include <cmath> #define min4(a,b,c,d) min(min(a,b),min(c,d)) using namespace std; int a[6000]; int n; int p2,p3,p5,p7;//计数 int main() { freopen("in.txt","r",stdin); p2=p3=p5=p7=1; n=1; a[1]=1; while(a <=2000000000&&n<6000) { a[++n]=min4(a[p2]*2,a[p3]*3,a[p5]*5,a[p7]*7); if(a ==a[p2]*2) p2++; if(a ==a[p3]*3) p3++; if(a ==a[p5]*5) p5++; if(a ==a[p7]*7) p7++; } while(scanf("%d",&n)!=EOF&&n) { printf("The %d",n); if(n%10==1&&(n%100)/10!=1) printf("st"); else if(n%10==2&&(n%100)/10!=1) printf("nd"); else if(n%10==3&&(n%100)/10!=1) printf("rd"); else printf("th"); printf(" humble number is %d.\n",a ); } }
相关文章推荐
- LeetCode题解:Permutations
- HDU 4747 Mex
- Scala 深入浅出实战经典 第77讲:模式匹配下的提取器动手构造实战
- 1-1 Zabbix 监控安装
- 将系统中的编码输出到txt文件
- LeetCode_Tree_Populating Next Right Pointers in Each Node I II
- 一起talk C栗子吧(第四十七回:C语言实例--走迷宫一)
- FPGA/CPLD中如何实现低于一个时钟周期的延时?
- [dp](不连续)最大公共上升子序列 POJ 2127
- Android开发利器(Logcat 、DDMS、ADB)的使用
- 完美的运用MSComm控件开发串口调试助手
- 如何变成有趣的人?
- Linux系统里的加密压缩方式
- 文件乱码问题
- jquery中表单 多选框的一种巧妙写法
- c++string字符串的输出
- Sql Server中and和or的优先级问题
- HDU 2489 Minimal Ratio Tree(最小生成树)
- 程序1
- 【PHP】解决html网页乱码问题