A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

现在共有100匹马跟100块石头,马分3种,大型马;中型马跟小型马。其中一匹大马一次可以驮3块石头,中型马可以驮2块,而小型马2头可以驮一块石头。问需要多少匹大马,中型马跟小型马?(问题的关键是刚好必须是用完100匹马)

7 个回复

正序浏览
a9623a 发表于 2016-3-3 11:41
DECLARE @Bigger INT,@Mid INT,@Small INT
SET @Bigger = 0
WHILE @Bigger

这用数据库写的吧  真是厉害啊
回复 使用道具 举报
DECLARE @Bigger INT,@Mid INT,@Small INT
SET @Bigger = 0
WHILE @Bigger <= 100
BEGIN
       
        SET @Mid = 0
        WHILE @Mid <= 100 -@Bigger
        BEGIN
                        SELECT @Small = 100 -@Bigger - @Mid;
                        IF @Bigger * 3 + @Mid * 2 + @Small * 0.5 = 100
                        BEGIN
                                SELECT @Bigger AS Big ,@Mid AS Mid,@Small AS Small
                        END

                        SELECT @Mid += 1;
        END
       
        SELECT @Bigger += 1;
END
使用SQL SERVER 的方法
Big         Mid         Small
----------- ----------- -----------
2           30          68

(1 個資料列受到影響)

Big         Mid         Small
----------- ----------- -----------
5           25          70

(1 個資料列受到影響)

Big         Mid         Small
----------- ----------- -----------
8           20          72

(1 個資料列受到影響)

Big         Mid         Small
----------- ----------- -----------
11          15          74

(1 個資料列受到影響)

Big         Mid         Small
----------- ----------- -----------
14          10          76

(1 個資料列受到影響)

Big         Mid         Small
----------- ----------- -----------
17          5           78

(1 個資料列受到影響)

Big         Mid         Small
----------- ----------- -----------
20          0           80

(1 個資料列受到影響)
回复 使用道具 举报
楼上说的对
回复 使用道具 举报
class lianxi {
        public static void main(String[] args) {
                //System.out.println("Hello World!");
                for (int i= 1;i <= 33 ;i ++ ){
                        for (int j =1;j <= 50 ;j ++ ){
                                for (int z =1;z <=100 ; z ++){
                                        if ((i + j + z ==100) & (3 * i + 2 * j + z / 2 == 100)){
                                                if (z % 2 == 0){
                                                        System.out.println(i );
                                                        System.out.println(j );
                                                        System.out.println(z );
                                                }
                                               
                                        }
                                }
                        }
                }
        }
}
凑合这看一下把
回复 使用道具 举报
3X+2Y+0.5Z=100,X+Y+Z=100。各种消元法 就可以算出来了简化后是5X=Y,6X+Z=100,4X+2Y=Z
回复 使用道具 举报
大马 5 中马25  小马70
回复 使用道具 举报
大马5  中马 25 小马  75  。具体做法是 设大马 中马 小马 个数分别是X  Y Z 。 3x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马