数丑陋 代码(C)

本文地址: http://blog.csdn.net/caroline_wendy

题目: 我们把仅仅包括因子2, 3 和 5的数称作丑数. 求按从小到大的顺序的第5个丑数.

能够设置一个数组包括所须要的丑数, 依次比較乘以2, 乘以3, 乘以5的最小的数, 最后返回结果.

如第5个丑数是5, 如1, 2, 3, 4(2*2), 5均是丑数.

代码:

/*
* main.cpp
*
* Created on: 2014.6.12
* Author: Spike
*/ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h>
#include <stdlib.h>
#include <string.h> int Min(int number1, int number2, int number3) {
int min = (number1 < number2) ? number1 : number2;
min = (min < number3) ? min : number3; return min;
} int GetUglyNumber(int index) {
if (index <= 0)
return 0;
int* pUglyNumbers = new int[index];
pUglyNumbers[0] = 1;
int nextUglyIndex = 1; int* pMultiply2 = pUglyNumbers;
int* pMultiply3 = pUglyNumbers;
int* pMultiply5 = pUglyNumbers; while (nextUglyIndex < index) {
int min = Min(*pMultiply2*2, *pMultiply3*3, *pMultiply5*5);
pUglyNumbers[nextUglyIndex] = min;
while (*pMultiply2*2 <= pUglyNumbers[nextUglyIndex])
++pMultiply2;
while (*pMultiply3*3 <= pUglyNumbers[nextUglyIndex])
++pMultiply3;
while (*pMultiply5*5 <= pUglyNumbers[nextUglyIndex])
++pMultiply5; ++nextUglyIndex;
}
int ugly = pUglyNumbers[nextUglyIndex-1];
delete[] pUglyNumbers;
return ugly; }
int main(void)
{
int num = 5;
int result = GetUglyNumber(num);
printf("result = %d\n", result); return 0;
}

输出:

result = 5

版权声明:本文博主原创文章,博客,未经同意不得转载。

最新文章

  1. HTTP Content-type 对照表
  2. jQuery.lazyload使用及源码分析
  3. Word Ladder II
  4. visio 2013 破解工具 - KMSpico
  5. Nyoj Arbitrage(Floyd or spfa or Bellman-Ford)
  6. printf 对齐
  7. Linux中top和free命令详解(转)
  8. Eclipse tomcat插件
  9. 简单的视频采集demo
  10. python 三级菜单 while循环三次,湖北省市-县-街道的选择,3个while的循环 -day2
  11. 【Python3爬虫】常见反爬虫措施及解决办法(三)
  12. IDEA 中使用MyBatis-generator 自动生成MyBatis代码
  13. 第25月第7天 聚宽 svm
  14. Socket阻塞模式和非阻塞模式的区别
  15. visual studio 修改注释快捷键,和断点
  16. C# 字符串首字符大写
  17. Alpha 冲刺八
  18. java自定义注解学习(一)_demo小练习
  19. script 页面在指定位置加载
  20. &lt;低风险投资之路&gt;读书笔记

热门文章

  1. Binder Proxy技术方案
  2. ORACLE 11G没有备份文件參数文件在异机通过rman备份恢复找回被误删的数据
  3. 在VC/MFC中嵌入Google地图——图文并茂
  4. 《实验数据的结构化程序设计》 2.4.4Calendar个人意见,寻求指引
  5. 动态创建ImageView
  6. hadoop-1.1.2 在Windows环境下的部署
  7. Sqlserver中Over函数
  8. 【C语言的日常实践(十四)】constkeyword详细解释
  9. 【C语言】推断一个数的奇偶(位操作)
  10. 先学习Oracle 11g的Automatic Diagnostic Repository新功能