c++求丑数程序的优化(第一行输入整数T,表示求多少次 然后输入T个整数n。)

c++求丑数程序的优化(第一行输入整数T,表示求多少次 然后输入T个整数n。),第1张

你这个属于暴力穷举,基本上不到100就要以秒计了,肯定超时

以前写过一个,主动产生丑数的算法,第1000个也就是1毫秒以内

算法的主要精神就是:后面的丑数是由前面的丑数*2,*3或者*5得来的,然后主动生成丑数序列,关于丑数算法具体细节原理,网上有很多文章,你可以自己搜索

#include <iostream>  

#include <ctime>

using namespace std

int min(int a, int b, int c)

{

int t = a < b ? a : b

return t <c ? t : c

}

int uglnum(int n)

{

int* unum = new int[n]

int un,i, i2, i3, i5

unum[0] = 1

i2 = i3 = i5 = 0

for (i = 1 i < n ++i)

{

un = min(unum[i2] * 2, unum[i3] * 3, unum[i5] * 5)

i2 += (un == unum[i2] * 2)

i3 += (un == unum[i3] * 3)

i5 += (un == unum[i5] * 5)

unum[i] = un

}

un = unum[n - 1]

delete[] unum

return un

}

int main()

{

int t,n

time_t ts

cin >> t

for (int i = 0 i < t ++i)

{

cin >> n

//ts = clock()

cout << uglnum(n) << endl

//ts = clock() - ts

//cout << ts<<"ms"<<endl

}

return 0

}

你的说法太片面了,京东这些都是用java写的,你觉得不好看吗?因为java只是负责后台的逻辑,一般就是处理的,好不好看是交给 前端,和ui设计的,所以java开发的程序丑,那是因为你还不懂 真的一个项目的构成,不仅是有java还有其他很多语言,所以说话不要太片面了!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/7717610.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-09
下一篇 2023-04-09

发表评论

登录后才能评论

评论列表(0条)

保存