本文废除!!!

参考链接: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(解法二)【废除!!!】相关推荐

  1. [POJ1338]Ugly Numbers

    [POJ1338]Ugly Numbers 试题描述 Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequ ...

  2. POJ1338 Ugly Numbers

    问题链接:POJ1338 Ugly Numbers.基础级练习题,用C++语言编写程序. 题意简述:不能被2.3和5以外的素数整除的数称为丑数,找出第1500个丑数. 问题分析:换句话说,丑数的因子只 ...

  3. HDU1106 排序(解法二)(废除!!!)

    本文废除!!! 请点击以下的参考链接!!! 参考链接:HDU1106 排序[字符串+整数+排序]. 问题链接:HDU1106 排序. 问题简述:参见上述链接. 问题分析:这个程序的逻辑并不十分复杂,主 ...

  4. Ugly Numbers问题

    算法一 Ugly Numbers 一.问题描述       质因子只有2.3.5的数称为丑数,为了方便,1也被归为丑数(1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15-)     ...

  5. 从LeetCode 679. 24 Game--C++ 解法--二十四点 到穷举24点所有可能性-24点大全

    从LeetCode 679. 24 Game–C++ 解法–二十四点 到穷举24点所有可能性 此文首发于我的个人博客:zhang0peter的个人博客 LeetCode题解文章分类:LeetCode题 ...

  6. Poj 1338 Ugly Numbers(数学推导)

    一.题目大意 本题要求写出前1500个仅能被2,3,5整除的数. 二.题解 最初的想法是从1开始检验该数是否只能被2,3,5整除,方法是这样的,对于一个数,如果它能被2整除,就除以2,如果它能被3整除 ...

  7. poj 1338 Ugly Numbers(丑数模拟)

    转载请注明出处:http://blog.csdn.net/u012860063? viewmode=contents 题目链接:http://poj.org/problem?id=1338 Descr ...

  8. 136 - Ugly Numbers

    Ugly Numbers Ugly numbers are numbers whose only prime factors are 2, 3 or 5. The sequence 1, 2, 3, ...

  9. 隐形Euler方法的java程序_常微分方程的解法 (二): 欧拉(Euler)方法

    上一节讲了 常微分方程的三种离散化 方法:差商近似导数.数值积分.Taylor 多项式近似. 目录 §2 欧拉(Euler)方法 2.1 向前 Euler 公式.向后 Euler 公式        ...

最新文章

  1. 独家 | 用随机森林预测“美版拼多多”商品销量
  2. 如何解决Linux操作系统找不到网卡的问题
  3. ir指令、立即数的作用_立即数的判断方法一
  4. 测试软件测试赢在测试2:中国软件测试专家访谈录
  5. .NET Core TDD 前传: 编写易于测试的代码 -- 构建对象
  6. int与byte转换(四字节)
  7. java8新特性_Java8新特性_lambda表达式
  8. 接口传值后不起作用_聊一聊 API 接口测试
  9. A Free CDN For Open Source
  10. 垂死病中惊坐起_我如何开始恢复垂死的软件团队的过程
  11. EL表达式中,param和requestScope的区别
  12. (转)C#中的Abstract和Virtual函数区分,因我老弄不明白这个问题,所以转到这儿
  13. 五分钟回顾 | 2016年智能交通大事件
  14. 雷电三接口有什么用_三坐标为什么用汽浮轴承?
  15. 华为交换机批量加入 Vlan 方法
  16. ubuntu18.04 设置字体样式, 调整字体大小
  17. 织梦网站木马生成一个php文件夹,dede织梦程序网站安全设置防范木马侵袭
  18. 真假4K电视检测:一张图足矣
  19. 深户集体户口借出须知
  20. 全国计算机四级之网络工程师知识点(一)

热门文章

  1. 浅析 golang module
  2. HLSL内置函数一览
  3. 计算机网络课程设计即时通讯,计算机网络课程设计报告-基于LAN的即时通信软件.doc...
  4. vs2019建立web工程_自动化工程师的C#之路(1)
  5. mschart mysql_在VB mschart里面可以一个MSCHART同时显示曲线和状图吗?
  6. java 向量点乘_向量的点乘与叉乘学习笔记
  7. easyui onclickrow 中获取列名_获取Chrome浏览器历史浏览记录实例
  8. 剑指offer面试题24. 反转链表(双指针)
  9. 剑指offer面试题31. 栈的压入、弹出序列(链表)
  10. gRPC编译和安装——Linux版