博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdoj-2028-Lowest common multiple plus
阅读量:6714 次
发布时间:2019-06-25

本文共 1101 字,大约阅读时间需要 3 分钟。

题目:

代码:

#include
int common(int a,int b)//计算最大公约数{ int c=a%b,t=0; if(b>a) { t=b; b=a; a=t; } while(a%b!=0) { c=a%b; a=b; b=c; } return b;}int q[105];int main(){ int n,i,j,t=0; while(scanf("%d",&n)) { for(i=1;i<=n;i++) { scanf("%d",&q[i]); } t=q[1]; //printf("%d\n",common(4,6)); for(j=2;j<=n;j++) { t=q[j]*t/common(q[j],t);//重复计算其公倍数 } printf("%d\n",t); } return 0;}

TLE

最大的问题是每次计算都要调用common函数,每次调用都要执行for循环,计算比较多的数导致TLE是正常的事情。

参考代码:by acmcyc

#include 
using namespace std;int main(){ int n,i; int a[100]; while(cin>>n) { int max; cin>>a[0]; max=a[0]; for(i=1;i
>a[i]; if(a[i]>max) max=a[i]; } int k=0,j; for(j=max;;j++)//2 5 7 j=7; { for(i=0;i

看到这串代码,不得不佩服作者的思考角度和方法:先找出输入所有数中的最大数max,然后不断+1进行判断(最小公倍数大于等于max),如果找到一个数对输入的所有数都能整除,那么这个数就是他们的最小公倍数。

转载地址:http://rtkmo.baihongyu.com/

你可能感兴趣的文章
Django权限使用总结
查看>>
互联网广告作弊的危害,以及如何反作弊
查看>>
温故js系列(3)-cookie优缺点&设置获取删除cookie
查看>>
jvm垃圾回收算法
查看>>
从零开始编写React-Express单页博客应用(学习总结)
查看>>
Socket的简单通信
查看>>
SegmentFault 2016 第一季度 Top Writer
查看>>
直接使用sublime编译stylus
查看>>
windows下使用nvmw来安装管理node.js
查看>>
ionic项目总结
查看>>
Gradle for Android 第一篇( 从 Gradle 和 AS 开始 )
查看>>
Search for a Range
查看>>
jQuery实现Ajax
查看>>
[LintCode] Print Numbers by Recursion
查看>>
[LeetCode/LintCode] Binary Tree Paths
查看>>
iOS开发之 保存图片到相册(相机胶卷)
查看>>
Python数据结构——内建数据结构
查看>>
利用HTML和CSS实现常见的布局
查看>>
[Leetcode] Add Binary 二进制相加
查看>>
CSS的隐藏方式
查看>>