| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1917 人关注过本帖
标题:beyondyf大哥请进,北航1001好几天了一只是超时
只看楼主 加入收藏
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
结帖率:95.24%
收藏
已结贴  问题点数:20 回复次数:22 
beyondyf大哥请进,北航1001好几天了一只是超时
描述
给2个正整数a,b(1<=a,b<=10100),求a和b的最小公倍数。

输入
输入包含多组数据,每组数据一行,包含两个正整数a和b,中间以一个空格隔开。输入以0 0结束。

输出
每组数据输出一行,为a,b的最小公倍数。

样例输入
123 321
123456789 987654321
0 0
样例输出
13161
13548070123626141
题目网址 http://www.
搜索更多相关主题的帖子: 北航 正整数 大哥 
2011-11-01 19:00
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
123456789 987654321 a 和 b 不是[1, 10100]吗?

My life is brilliant
2011-11-01 19:34
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
回复 2楼 lz1091914999
呵呵  估计是我粘错了  是10的100次方

                                         
===========深入<----------------->浅出============
2011-11-01 19:38
lz1091914999
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:四川
等 级:贵宾
威 望:37
帖 子:2011
专家分:5959
注 册:2010-11-1
收藏
得分:0 
回复 3楼 laoyang103
恩,如果用unsigned long long的话也会有溢出的可能,那么就要去写一个支持无限大的类型了?Java类库里面有一个BigInteger,但肯定会超时吧?不过可以去研究一下源代码然后改成C?

My life is brilliant
2011-11-01 19:49
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
回复 4楼 lz1091914999
内置数据类型是不可能解决这个问题的   java 我也不会  纠结啊

                                         
===========深入<----------------->浅出============
2011-11-01 20:12
yuyuehan2010
Rank: 2
来 自:浙江
等 级:论坛游民
帖 子:19
专家分:22
注 册:2011-10-6
收藏
得分:0 
回复 楼主 laoyang103
菜鸟C,初学的,给一代码,不好别介意;我乱编的。随便求指教。
#include<stdio.h>
#define N 1000
int bijiao(int a,int b)
{
    int i,t,r;
    if(a>b)
    {
        t=a;a=b;b=t;   
    }
    for(i=a;i>0;i--)
    {
        r=b%i;
        if(r==0)
            break;
    }
    r=a*b/i;
    return r;
}
main()
{
    int a[N],b[N],c[N];
    int i=0,n;
    for(;i<N;i++)
    {
        scanf("%d%d",&a[i],&b[i]);
        if(a[i]!=0||b[i]!=0)
        {
            c[i]=bijiao(a[i],b[i]);
        }
        else
        {
            break;   
        }
    }
    n=i;
    for(i=i+1;i<N;i++)
    {
        c[i]=0;   
        b[i]=0;
        c[i]=0;
    }
    for(i=0;i<n;i++)
    {
        printf("%d\n",c[i]);
    }
}
2011-11-01 20:18
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:20 
呵呵,你好久不出现,一来了就出这样的难题。
大数之间的除法是大数运算中最难的部分,我也一直没有偿试过,能想到的算法也只有循环试除,这样的计算量很大。
我看了一下原题,限制时间是8秒,是我见过限时最长的题目了。
这样吧,晚一点回去我试一下,明天给你答复

重剑无锋,大巧不工
2011-11-01 20:44
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
to 6楼:用int是解决不了问题的  

to 7楼:我也是用的试除法  结果超时 网上的人说这个题只有暴力求解 写对了就是AC 不对就是你写错了

但是200多行的程序上哪里找那错误了  我都快哭了

                                         
===========深入<----------------->浅出============
2011-11-01 20:51
beyondyf
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:103
帖 子:3282
专家分:12654
注 册:2008-1-21
收藏
得分:0 
回复 8楼 laoyang103
呵呵,等我明天试一下。过不了,陪你一起哭

重剑无锋,大巧不工
2011-11-01 21:20
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
回复 7楼 beyondyf
我这周六(11月5日)去呼和浩特参加比赛 不知道能不能见下你  我手机15174907043

希望能拜访一下高手

                                         
===========深入<----------------->浅出============
2011-11-01 21:21
快速回复:beyondyf大哥请进,北航1001好几天了一只是超时
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.042076 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved