黑马程序员技术交流社区

标题: 求大神帮忙解答 [打印本页]

作者: 某某帅    时间: 2016-9-3 00:03
标题: 求大神帮忙解答
我有200斤大米,我需要换成西瓜和苹果
        4斤大米能换一个西瓜,3斤大米能换一个苹果
        200斤大米全部换完,请问一共有多少种换法(西瓜和苹果都至少有一个
作者: 13411939415    时间: 2016-9-3 00:04
刚好没事,稍等
作者: 13411939415    时间: 2016-9-3 00:12
public static void main(String[] args) {
                int count = 0;
                for(int xg = 1; xg < 200 / 4; xg++) {
                        if((200 - xg * 4) % 3 == 0) {
                                count++;
                                int pg = (200 - xg * 4) / 3;
                                System.out.print("西瓜:" + xg + "个,");
                                System.out.println("苹果:" + pg + "个");
                        }
                }
                System.out.println("总共" + count + "种方法");
作者: xh_javaee    时间: 2016-9-3 00:14

public class Test {
            public static void main(String[] args) {
                    //换法数量
                    int count = 0;
                    //至少1个西瓜、1个苹果,剩余193斤大米
                    //西瓜、苹果数量,全部换西瓜48个、苹果64个
                for(int i=1;i<=48;i++) {
                        for(int j=1;j<=64;j++) {
                                if(i*4+j*3 == 193) {
                                        count++;
                                }
                        }
                }
                System.out.println("总共有"+count);
            }
}
作者: Android一米阳光    时间: 2016-9-3 00:33
楼上溜溜哒
作者: HeJundong    时间: 2016-9-3 00:37
这题用穷尽法,一一列出结果来,你先这样想,假如全部用来换习惯能换50个,但是必须有苹果,那么西瓜个数就不能等于50,同样苹果个数不能超过66个(假设西瓜x,苹果y),代码如下:
[Java] 纯文本查看 复制代码
class Exam {
        public static void main(String[] args) {
                //西瓜和苹果必须有,所以都从1开始
                int x = 1;
                int y = 1;
                int count = 0;
                //用西瓜作为循环数x=(200-3y)/4,苹果也行y=(200-4x)/3,取整
                for (x = 1;x < 50 ;x++ ) {
                        //if判断他是否能全部换完
                        if((y = (200 - 4*x)/3)%2==0) {
                                count++;
                                System.out.println("西瓜个数 = "+ x + ",和苹果个数 = "+y);
                        }
                }
                System.out.println("一共有"+count+"种换法");

               
        }
}

作者: accomplonely    时间: 2016-9-3 10:13
就是双重for循环然后判断,我建议你锻炼一下你自己的思维,这些需要用数学思想来考虑的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2