编程算法 - 数丑陋 代码(C)
2024-08-20 20:52:34
数丑陋 代码(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
版权声明:本文博主原创文章,博客,未经同意不得转载。
最新文章
- HTTP Content-type 对照表
- jQuery.lazyload使用及源码分析
- Word Ladder II
- visio 2013 破解工具 - KMSpico
- Nyoj Arbitrage(Floyd or spfa or Bellman-Ford)
- printf 对齐
- Linux中top和free命令详解(转)
- Eclipse tomcat插件
- 简单的视频采集demo
- python 三级菜单 while循环三次,湖北省市-县-街道的选择,3个while的循环 -day2
- 【Python3爬虫】常见反爬虫措施及解决办法(三)
- IDEA 中使用MyBatis-generator 自动生成MyBatis代码
- 第25月第7天 聚宽 svm
- Socket阻塞模式和非阻塞模式的区别
- visual studio 修改注释快捷键,和断点
- C# 字符串首字符大写
- Alpha 冲刺八
- java自定义注解学习(一)_demo小练习
- script 页面在指定位置加载
- <;低风险投资之路>;读书笔记
热门文章
- Binder Proxy技术方案
- ORACLE 11G没有备份文件參数文件在异机通过rman备份恢复找回被误删的数据
- 在VC/MFC中嵌入Google地图——图文并茂
- 《实验数据的结构化程序设计》 2.4.4Calendar个人意见,寻求指引
- 动态创建ImageView
- hadoop-1.1.2 在Windows环境下的部署
- Sqlserver中Over函数
- 【C语言的日常实践(十四)】constkeyword详细解释
- 【C语言】推断一个数的奇偶(位操作)
- 先学习Oracle 11g的Automatic Diagnostic Repository新功能