POJ1338 Ugly Numbers(解法二)【废除!!!】
本文废除!!!
参考链接:POJ1338 Ugly Numbers【水题】
问题链接:POJ1338 Ugly Numbers。基础级练习题,用C语言编写程序。
题意简述:不能被2、3和5以外的素数整除的数称为丑数,找出第1500个丑数。
问题分析:换句话说,丑数的因子只能是2、3和5。1是丑数,对于x,若x是丑数则2x、3x和5x是丑数。利用已知的丑数,从小到不断生成丑数就可以了。
程序中,结果放在数组ans[]中,也是生产丑数的x;素数放在数组prime[]中,这个问题只有2、3和5;生成的丑数放在数组ugly[]中,然后选出最小的放入结果数组ans[]中,对于被放入数组的则计算下一个丑数(从小到大依次生成,逐个放入结果数组中)。
本问题打表是合适的。
AC的C语言程序如下:
/* POJ1338 Ugly Numbers */#include <stdio.h>#define MAXN 1500typedef unsigned long long ULL;ULL ans[MAXN+1] = {0, 1};void maketable()
{int prime[] = {2, 3, 5};ULL ugly[sizeof(prime)/sizeof(prime[0])];int p[sizeof(prime)/sizeof(prime[0])];int count, size, i;size = sizeof(prime)/sizeof(prime[0]);count = 1;for(i=0; i<size; i++) {p[i] = 1;ugly[i] = ans[p[i]] * prime[i];}while(count < MAXN) {ULL min = ugly[0];int j = 0;/* 找出最小元素 */for(i=1; i<size; i++) {if(ugly[i] < min) {min = ugly[i];j = i;}}/* 生成的丑数没有重复,加入表中 */if(ans[count] != min)ans[++count] = min;/* 生成下一个最小丑数 */ugly[j] = ans[++p[j]] * prime[j];}
}int main(void)
{int n;maketable();while(scanf("%d", &n) != EOF && n != 0)printf("%llu\n", ans[n]);return 0;
}
POJ1338 Ugly Numbers(解法二)【废除!!!】相关推荐
- [POJ1338]Ugly Numbers
[POJ1338]Ugly Numbers 试题描述 Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequ ...
- POJ1338 Ugly Numbers
问题链接:POJ1338 Ugly Numbers.基础级练习题,用C++语言编写程序. 题意简述:不能被2.3和5以外的素数整除的数称为丑数,找出第1500个丑数. 问题分析:换句话说,丑数的因子只 ...
- HDU1106 排序(解法二)(废除!!!)
本文废除!!! 请点击以下的参考链接!!! 参考链接:HDU1106 排序[字符串+整数+排序]. 问题链接:HDU1106 排序. 问题简述:参见上述链接. 问题分析:这个程序的逻辑并不十分复杂,主 ...
- Ugly Numbers问题
算法一 Ugly Numbers 一.问题描述 质因子只有2.3.5的数称为丑数,为了方便,1也被归为丑数(1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15-) ...
- 从LeetCode 679. 24 Game--C++ 解法--二十四点 到穷举24点所有可能性-24点大全
从LeetCode 679. 24 Game–C++ 解法–二十四点 到穷举24点所有可能性 此文首发于我的个人博客:zhang0peter的个人博客 LeetCode题解文章分类:LeetCode题 ...
- Poj 1338 Ugly Numbers(数学推导)
一.题目大意 本题要求写出前1500个仅能被2,3,5整除的数. 二.题解 最初的想法是从1开始检验该数是否只能被2,3,5整除,方法是这样的,对于一个数,如果它能被2整除,就除以2,如果它能被3整除 ...
- poj 1338 Ugly Numbers(丑数模拟)
转载请注明出处:http://blog.csdn.net/u012860063? viewmode=contents 题目链接:http://poj.org/problem?id=1338 Descr ...
- 136 - Ugly Numbers
Ugly Numbers Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, 2, 3, ...
- 隐形Euler方法的java程序_常微分方程的解法 (二): 欧拉(Euler)方法
上一节讲了 常微分方程的三种离散化 方法:差商近似导数.数值积分.Taylor 多项式近似. 目录 §2 欧拉(Euler)方法 2.1 向前 Euler 公式.向后 Euler 公式 ...
最新文章
- 独家 | 用随机森林预测“美版拼多多”商品销量
- 如何解决Linux操作系统找不到网卡的问题
- ir指令、立即数的作用_立即数的判断方法一
- 测试软件测试赢在测试2:中国软件测试专家访谈录
- .NET Core TDD 前传: 编写易于测试的代码 -- 构建对象
- int与byte转换(四字节)
- java8新特性_Java8新特性_lambda表达式
- 接口传值后不起作用_聊一聊 API 接口测试
- A Free CDN For Open Source
- 垂死病中惊坐起_我如何开始恢复垂死的软件团队的过程
- EL表达式中,param和requestScope的区别
- (转)C#中的Abstract和Virtual函数区分,因我老弄不明白这个问题,所以转到这儿
- 五分钟回顾 | 2016年智能交通大事件
- 雷电三接口有什么用_三坐标为什么用汽浮轴承?
- 华为交换机批量加入 Vlan 方法
- ubuntu18.04 设置字体样式, 调整字体大小
- 织梦网站木马生成一个php文件夹,dede织梦程序网站安全设置防范木马侵袭
- 真假4K电视检测:一张图足矣
- 深户集体户口借出须知
- 全国计算机四级之网络工程师知识点(一)
热门文章
- 浅析 golang module
- HLSL内置函数一览
- 计算机网络课程设计即时通讯,计算机网络课程设计报告-基于LAN的即时通信软件.doc...
- vs2019建立web工程_自动化工程师的C#之路(1)
- mschart mysql_在VB mschart里面可以一个MSCHART同时显示曲线和状图吗?
- java 向量点乘_向量的点乘与叉乘学习笔记
- easyui onclickrow 中获取列名_获取Chrome浏览器历史浏览记录实例
- 剑指offer面试题24. 反转链表(双指针)
- 剑指offer面试题31. 栈的压入、弹出序列(链表)
- gRPC编译和安装——Linux版