| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 718 人关注过本帖
标题:<求助>求最小公倍数和最大公约数.怎么结果不对?
只看楼主 加入收藏
、镜花氺月
Rank: 2
等 级:论坛游民
帖 子:71
专家分:18
注 册:2010-11-5
结帖率:85.71%
收藏
已结贴  问题点数:20 回复次数:7 
<求助>求最小公倍数和最大公约数.怎么结果不对?
#include<stdio.h>
main()
{
    int a,b,x1,y1,i,j,x2,y2,x;      
    scanf("%d%d",&a,&b);
    if(a<b)
    {    x=a;
        a=b;
        b=x;               
    }                //b是小的数
    for(i=1;;++i)
    {    x1=a%i;
         y1=b%i;
    if(x1==y1)
    {
        printf("最大公约数是%d\n",x1);
        break;
    }
    }
     for(j=a;x2==y2;++j )
     {
         x2=j/a;
         y2=j/b;
     }
         printf("最大公约数是%d\n",x1);
     printf("最小公倍数是%d",x2);
     return 0;
}
搜索更多相关主题的帖子: 结果 最小公倍数 最大公约数 
2010-11-23 17:12
shuimu10
Rank: 2
等 级:论坛游民
帖 子:53
专家分:48
注 册:2010-11-19
收藏
得分:0 
int main()
2010-11-23 17:15
zzgzzg00
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:2
帖 子:388
专家分:627
注 册:2010-8-2
收藏
得分:10 
#include<stdio.h>
main()
{
    int a,b,x1,y1,i,j,x2,y2,x;      
    scanf("%d%d",&a,&b);
    if(a<b)
    {    x=a;
        a=b;
        b=x;               
    }                //b是小的数
    for(i=1;;++i)
    {    x1=a%i;
         y1=b%i;
    if(x1==y1)
    {
        printf("最大公约数是%d\n",x1);这里好像不对吧 比如a=b=4,那么在i=2(似乎3也退)时就退出循环了
        break;
    }
    }
     for(j=a;x2==y2;++j )这里也不对似乎      
     {
         x2=j/a;
         y2=j/b;
     }
         printf("最大公约数是%d\n",x1);
     printf("最小公倍数是%d",x2);
     return 0;
}
搜索更多相关主题的帖子: 结果  

粗心是大敌
2010-11-23 18:07
allang001
Rank: 1
等 级:新手上路
帖 子:4
专家分:1
注 册:2010-11-22
收藏
得分:0 
楼主的算法似乎一个都没对
比如你的最大公约数,看前面的样子似乎你想用欧几里德算法,但是很明显的乱写了


[ 本帖最后由 allang001 于 2010-11-23 18:21 编辑 ]

GNU的皇冠,添上HURD这颗钻石就完美了。
2010-11-23 18:16
lpgonghan
Rank: 2
等 级:论坛游民
帖 子:9
专家分:12
注 册:2010-11-16
收藏
得分:0 
#include <stdio.h>
void main()
{
    int a,b,k,m,n,i,j,t;
    printf("please input two numbers:\n");
    scanf("%d%d",&a,&b);
    if(a>b) k=b;else k=a;
    for(i=1;i<=k;i++)
    {    if(a%i==0&&b%i==0)
        t=i;  }
        if(a>b) m=a;else m=b;
    for(j=m;j<=a*b;j++)
        if(j%a==0&&j%b==0)
            break;
        printf("最大公约数=%d,最小公倍数=%d\n",t,j);
   

}
2010-11-23 18:42
gaochizhen33
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:114
专家分:101
注 册:2010-11-4
收藏
得分:10 
程序代码:
#include<stdio.h>
main()
{
    int a,b,x1,y1,i,j,x2,y2,x;     
    scanf("%d%d",&a,&b);
    if(a<b)
    {    x=a;
        a=b;
        b=x;              
    }                //b是小的数
    for(i=1;;++i)
    {    x1=a%i;        /*这不是求余数么 照楼主的思想算下去有很多错误啊*/
         y1=b%i;
    if(x1==y1) 
    {
        printf("最大公约数是%d\n",x1);
        break;
    }
    }
     for(j=a;x2==y2;++j )
     {
         x2=j/a;        /*这也有点问题 楼主的思路从根本上就不对啊 一个数除两个不同的数根本不能得到一个相同的结果啊,这样看这个循环根本就不会停止啊*/
         y2=j/b;
     }
         printf("最大公约数是%d\n",x1);
     printf("最小公倍数是%d",x2);
     return 0;
} 
总的来说 感觉楼主对求公约数跟公倍数思路上就存在问题
2010-11-23 19:12
ou1111
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:87
专家分:162
注 册:2010-10-26
收藏
得分:0 
用辗转相除法球最小公倍数
程序代码:
#include <stdio.h>
void main()
{
  int r,t,x,y,m,n;
  printf("请输入两个正整数:\n");
  scanf("%d%d",&x,&y);
  m=x;
  n=y;
  while(y)
  {
     if(x<y)
     {t=x;x=y;y=t;}
     else
     {   r=x%y;
         x=y;
         y=r;
     }
  }
   printf("最大公约数为%d\n",x);
   r=m*n/x;
   printf("最小公倍数为%d\n",r);


}
2010-11-23 20:47
、镜花氺月
Rank: 2
等 级:论坛游民
帖 子:71
专家分:18
注 册:2010-11-5
收藏
得分:0 
光说我错。 没解决根本问题啊。
2010-11-30 17:47
快速回复:<求助>求最小公倍数和最大公约数.怎么结果不对?
数据加载中...
 
   



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

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