【杭电】[2028]Lowest Common Multiple Plus

来源:互联网 发布:江门美工家具定制 编辑:程序博客网 时间:2024/06/14 10:14

这里写图片描述
这里写图片描述

11月8号写的代码……
然后这周周练出到了这一题……
-_-||
总之……再复习一遍吧~
多个数的最小公倍数
这个思路是找寻最大的数
然后不停+1+1+1+1+1
然后来寻找一个所有数都能整除的数
本来感觉会超时……然而并没有……

#include<stdio.h>int main(){    int i,n,s[500],m;    while(scanf("%d",&n)!=EOF)    {        m=0;        for(i=0;i<n;i++)        {            scanf("%d",&s[i]);            if(m<s[i])  m=s[i];        }        for(i=0;i<n;i++)        {          if(m%s[i]!=0)          {              m++;              i=-1;          }        }        printf("%d\n",m);    }    return 0;}

再学学这个多个数最小公倍数的求法吧
这种方法确实很粗暴 感觉不好
学会了其它的再来补上

20160403补充:

前两个数的最小公倍数求出后与下一个求最小公倍数
循环这一操作 最后结果就是全部的最小公倍数

需要注意的是因为先乘后除可能会溢出
所以用int需要先除后乘

#include<stdio.h>int gcd(int a,int b) {    if(b==0)        return a;    else        return gcd(b,a%b);}int main() {    int n;    while(scanf("%d",&n)!=EOF) {        int t;        scanf("%d",&t);        for(int i=1; i<n; i++) {            int t2;            scanf("%d",&t2);            t=t/gcd(t,t2)*t2;        }        printf("%d\n",t);    }    return 0;

题目地址:【杭电】[2028]Lowest Common Multiple Plus

0 0
原创粉丝点击