有100元,要分给100个人,怎么分?
一个男人10元,一个女人5元,一个小孩0.5元
用程序写

解决方案 »

  1.   

    x+y+z=100
    10x+5y+0.5z=100        for(int i=0;i<=10;i++){
                for(int j=0;j<20;j++){
                    for(int k=0;k<=200;k++){
                        if(i+j+k==100 && 10*i+5*j+0.5*k==100){
                            System.out.println(i+":"+j+":"+k);
                        }
                    }
                }
            }
      

  2.   

    kebin0001 回答的对如果要是用递归来写 怎么写
      

  3.   


    for(int i=1;i<6;i++){
    if((100-19*i)%9 == 0 ){
    int x = i;
    int y = (100-19*x)/9;
    int z = 100-x-y;
    System.out.println(x+":"+y+":"+z);
    }
    }
      

  4.   

    谢谢,请问为什么要i<10,j<=20,k<=200,为什么是10和20和200呢?
      

  5.   

    因为是10i 如果i> 10 自己就已经大于100了
    其他的也一样
      

  6.   

    int i,j,k;
    for(i=1;i<=20;i++)
    for(j=1;j<=33;j++)
    for(k=1;k<=200;k++)
    if(i+j+k==100&&5*i+3*j+0.5*k==100)
    printf("%d %d %d",i,j,k); 
      

  7.   

    我国古代有一道有名的数学问题,即百钱买百鸡的问题:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?  古人所说的鸡翁即公鸡,鸡母即母鸡,鸡雏即小鸡。公鸡每只五钱,母鸡每只三钱,小鸡每只三分之一钱,即三只小鸡共值一钱。
      一般人想解决这一问题只能靠凑数,这样做既费时间,效果又很差。但是,若用计算机的高级语言(如C语言)来做,则显得很容易。
      
      在正式介绍C语言之前先来看一个C程序的例子,就是解决上面问题的C语言程序。  例1 百钱买百鸡的C语言程序(初步程序)
      main()
      {
      int i,j,k
      for (i=1;i<=20;i++)
      for (j=1;j<=33;j++)
      {
      k=100-i-j;
      if (i*5+j*3+k/3=100)
      printf("%d,%d,%d\n",i,j,k);
      }
      }
      在此对C程序先作些解释,在以后的课程中我们会继续作出相应的解释。C程序是由一个或多个函数构成,函数由函数名并紧跟一对园括号( )及其后面的一对花括号组成,如:
      main( )
      { 
      }
      函数名由任意的一至八个字符组成,如上面的main( ) { },花括号中内容叫函数体。组成C程序的诸多函数中,必须有一个且只有一个名为main的函数,称为主函数,也就是说C程序由一个主函数main( ),及其它函数组成,各个函数名不能相同;也可以只有主函数而没有其它函数。函数名后圆括号中,可以有若干个参数,也可以没有参数。但花括号中必须有函数体。其实函数体才是真正解决问题的程序。
    函数体中的内容一般可分为两部分:说明部分和执行部分。  1.说明部分: int i,j,k 为说明部分,它说明了三个变量i,j,k 都是整数类型的变量,int 是英语整数 integer 的缩写。说明部分除了可以说明整型变量之外,还可以说明其它变量,这些内容我们以后还会再碰到,这里不多讲了。在此要强调的一点是C语言和有的计算机语言不同,所有在执行部分中使用的变量,都必须事先在说明部分中说明,否则就不能在执行部分中使用  2.执行部分:说明部分之后都是执行部分,它由两个嵌套的for语句组成。for语句是循环语句,循环语句的一般形式是:
    for(第一表达式;第二表达式;第三表达式;)
    循环体;  其中:第一表达式:一般用来指明循环的开始值;第二表达式:用来指明循环的终止值;第三表达式:用来指明每次循环的增加值;循环体是循环的执行部分,它可以是一个语句,也可以是多个语句,由多个语句组成的循环体称复合语句循环体,复合语句必须用花括号括起来,如上述程序中的:
      {
      k=100-i-j;
      if (i*5+j*3+k/3=100)
      printf("%d,%d,%d\n",i,j,k);
      };  这是由两个语句构成的复合语句,前一个
      k=100-i-j;  称赋值语句;后一个
      if (i*5+j*3+k/3=100)
      printf("%d,%d,%d\n",i,j,k);  选择语句,每一个语句都应包含其后面的分号,在C语言中没有分号不能称为语句。
    在上述C程序中的执行部分中,for语句是两层,是for语句的嵌套,即二重循环,后面紧接着的花括号里的便是循环体,它是一个复合语句。语句的种类较多,以后会逐步讲的。
      (1).看一看:我们看了一个百钱买百鸡的问题,问题是提出来了,但并没有完全解决,另外,我们也看了一个C语言的程序,虽然,还不大懂,但已有了一些了解。  (2).想一想:学完这一讲后,我们应该想一想:C程序的结构大概是什么样的?函数的结构又是什么样的,两者有什么关系?for循环语句的结构是什么样的;复合语句的结构又是什么样的!  (3).做一做:每讲完了我们都应动手做一做,因刚开始不能上机去做贸待后面再补做吧!下一讲我们准备讲一讲解决百钱买百鸡问题的算法,再下一讲介绍C语言上机操作的步骤,到那时我们可以把上述C程序打入计算机中去操作了!