zoukankan      html  css  js  c++  java
  • ACM题目1446: [2013年第四届真题]核桃的数量

    题目描述
    小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是: 
    1.  各组的核桃数量必须相同 
    2.  各组内必须能平分核桃(当然是不能打碎的) 
    3.  尽量提供满足1,2条件的最小数量(节约闹革命嘛) 

    输入
    输入包含三个正整数a,  b,  c,表示每个组正在加班的人数,用空格分开(a,b,c< 30)  
    输出
    输出一个正整数,表示每袋核桃的数量。
    样例输入
    2 4 5
    样例输出
    20
    这个题目就是一个求三个数字的最小公倍数的题目
    但是我的做法不具有普适性
    只有部分测试用例可以通过
    不知道什么原因
    先把代码贴在下面
    周末在研究一下
    #include<stdio.h>
    int main()
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        int temp;
        int add=0;
        for(int i=0;i<a*b*c;i++)
        {
            if(a<b)//交换ab的值使a最大
            {
            temp=a;
            a=b;
            b=temp;
            }
           if(b<c)//交换bc的值使b最大
           {
            temp=c;
            c=b;
            b=temp;
            }
            if(a<c)//交换bc的值使b最大
            {
            temp=c;
            c=a;
            a=temp;
            }//目前的排序是a>b>c
            if(a%b==0)//接下来的工作是求最小公倍数 
            {
            add=a/b;
            }
            else
            {
            add=a*b;
            }
            if(add%c==0)
            {
            add=add;
            }
            else
            {
            add=add*c;
            }
            
        }
        printf("%d",add);
        return 0;
        
       
        
    }
    

      正确的代码是使用暴力破除的方法 遍历然后找到最小公倍数

    #include<stdio.h>
    int main()
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        for(int add=1;;add++)
        {
            if((add%a==0)&&(add%b==0)&&(add%c==0))//当add可以同时被三个数整除时输出结果 
            {
                printf("%d
    ",add);	
                break;
    		} 
        }
        return 0;
    } 
    

     暴力破除法虽然可以 但是要考虑到时间复杂度的影响

     
  • 相关阅读:
    java 前端--Jquery表单验证
    java基础--IO流(3)
    工具的使用与安装--myeclipse项目导入eclispse中的设置
    洛谷 P2697 宝石串
    洛谷 P2145 [JSOI2007]祖码
    洛谷 P1005 矩阵取数游戏
    洛谷 P3205 [HNOI2010]合唱队
    洛谷 P1220 关路灯
    POJ 2152 Fire
    洛谷 P1043 数字游戏
  • 原文地址:https://www.cnblogs.com/redzzy/p/13693802.html
Copyright © 2011-2022 走看看