求帮忙写程序:(这些题目我自己能分析,就是不会写出来,有些题关于数学的,本人数学很丢人。刚学完二重循环,请大家尽量用我能看懂的方法写,最好能加点注释,老师给了40道题,多半都写不出来,希望借鉴大家的方法,再去理解。)谢谢大家!
1.我国古代数学家张邱建在《算经》中出了一道“百钱买白鸡”的问题,题意是这样的:5文钱可以买一只公鸡,3文钱可以买一只母鸡,1文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么各有公鸡、母鸡、雏鸡多少只?请编写程序实现。2。彩票生成系统:生成一组随机的双色球彩票(一共7个数字,前六位随机范围为1-33,最后一位范围1-16),使用数组保存生成的每次随机数。要求数组的前六位不能出现重复的数字。提示:使用数组和二重循环。3.题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
程序分析:(a>b)?a:b这是条件运算符的基本例子。4.题目:一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。5.题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。程序分析:请抓住分子与分母的变化规律。6.题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下
的是原来第几号的那位。7.题目:海滩上有一堆桃子,五只猴子来分。第一只猴子把这堆桃子凭据分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子?8.题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),显示出总分最高的学生的学生号、姓名、三门课的平均成绩。(不考虑最高分9.题目:有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数10.题目:打印出杨辉三角形(要求打印出10行如下图)
1.程序分析:
        1
       1 1
     1 2 1
    1 3 3 1
   1 4 6 4 1
1 5 10 10 5 1

解决方案 »

  1.   


    import java.util.Random;public class Test
    {
        public static void main(String[] args)
        {
            // 1. 百元买百鸡
            // 5X + 3Y + Z/3 = 100;
            // X + Y + Z = 100; ->
            // 15X + 9Y + (100 - X - Y) = 300; ->
            // 14X + 8Y = 200; ->
            // 7X + 4Y = 100;
            for (int i = 0; i < 100 / 4; i++)
            {
                if ((100 - i * 4) % 7 == 0)
                {
                    int x = (100 - i * 4) / 7;
                    int y = i;
                    int z = 100 - x - y;
                    System.out.println(x + ":" + y + ":" + z);
                }
            }        // 2.彩票
            int[] caipiao = new int[7];
            for (int i = 0; i < 7; i++)
            {
                caipiao[i] = -1;
            }        for (int i = 0; i < 6; i++)
            {
                int ran = new Random().nextInt(33) + 1;
                while (haveSame(caipiao, ran))
                {
                    ran = new Random().nextInt(33) + 1;
                }
                caipiao[i] = ran;
            }        caipiao[6] = new Random().nextInt(16) + 1;
            // 打印
            for (int i : caipiao)
            {
                System.out.println(i);
            }
        }
        public static boolean haveSame(int[] caipiao, int ran)
        {
            for (int i = 0; i < 6; i++)
            {
                if (caipiao[i] == ran)
                {
                    return true;
                }
            }        return false;
        }
    }
      

  2.   


    //题目3
    public class Test
    {
        public static void main(String[] args)
        {
            int test = new Random().nextInt(100) + 1;
            System.out.println(test + ":" + grade(test));
        }
        public static char grade(int grade)
        {
            return grade >= 90 ? 'A' : (grade >= 60 ? 'B' : 'C');
        }
    }
      

  3.   


        // 题目4
        public static void main(String args[])
        {
            int m = 0;
            int s = 0;
            int i = 0;
            int a[] = new int[1000];        for (s = 2; s < 1000; s++)
            {
                m = 0;
                for (i = 1; i < s; i++)
                {
                    if (s % i == 0)
                        a[i - 1] = i;
                    else
                        a[i - 1] = 0;
                }
                for (i = 1; i < s; i++)
                    m = m + a[i - 1];
                if (m == s)
                    System.out.println(s);
            }
        }只能回三次,没办法了...
      

  4.   


    //百鸡:
    public static void main(String[] args) {
    int gongji = 0;
    int muji = 0;
    int chuji = 0;
    for (int i = 1; i <= 100; i++) {
    gongji = 5 * i;
    muji = 3 * i;
    chuji = i / 3;
    if (100 == gongji + muji + chuji) {
    System.out.println(i);
    break;
    }
    }
    System.out.println(gongji + " : " + muji + " : " + chuji);
    }
      

  5.   


        // 题目10
        public static void main(String[] args)
        {
            int a[][] = new int[10][];
            for (int s = 0; s < 10; s++)
            {
                a[s] = new int[s + 1];
                a[s][0] = 1;
                a[s][s] = 1;
            }
            
            for (int i = 2; i < 10; i++)
            {
                for (int j = 1; j < i; j++)
                {
                    a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
                }
            }
            
            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < i + 1; j++)
                    System.out.print(a[i][j] + " ");
                System.out.println();
            }
        }
      

  6.   


        // 题目9
        public static void main(String[] args)
        {
            int[] a = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
            int[] dst = swap(a, 9);
            for (int i : dst)
            {
                System.out.println(i);
            }
        }
        public static int[] swap(int[] arr, int len)
        {
            int size = arr.length;
            if (len > size)
            {
                return null;
            }
            int[] temp = new int[size];
            System.arraycopy(arr, 0, temp, size - len, len);
            System.arraycopy(arr, len, temp, 0, size - len);
            return temp;
        }
      

  7.   

    import java.util.Random;public class Test
    {
        public static void main(String[] args)
        {
            // 1. 百元买百鸡
            // 5X + 3Y + Z/3 = 100;
            // X + Y + Z = 100; ->
            // 15X + 9Y + (100 - X - Y) = 300; ->
            // 14X + 8Y = 200; ->
            // 7X + 4Y = 100;
            for (int i = 0; i < 100 / 4; i++)
            {
                if ((100 - i * 4) % 7 == 0)
                {
                    int x = (100 - i * 4) / 7;
                    int y = i;
                    int z = 100 - x - y;
                    System.out.println(x + ":" + y + ":" + z);
                }
            }        // 2.彩票
            int[] caipiao = new int[7];
            for (int i = 0; i < 7; i++)
            {
                caipiao[i] = -1;
            }        for (int i = 0; i < 6; i++)
            {
                int ran = new Random().nextInt(33) + 1;
                while (haveSame(caipiao, ran))
                {
                    ran = new Random().nextInt(33) + 1;
                }
                caipiao[i] = ran;
            }        caipiao[6] = new Random().nextInt(16) + 1;
            // 打印
            for (int i : caipiao)
            {
                System.out.println(i);
            }
        }
        public static boolean haveSame(int[] caipiao, int ran)
        {
            for (int i = 0; i < 6; i++)
            {
                if (caipiao[i] == ran)
                {
                    return true;
                }
            }        return false;
        }
    }
      

  8.   

    import java.util.Random;public class Test
    {
        public static void main(String[] args)
        {
            // 1. 百元买百鸡
            // 5X + 3Y + Z/3 = 100;
            // X + Y + Z = 100; ->
            // 15X + 9Y + (100 - X - Y) = 300; ->
            // 14X + 8Y = 200; ->
            // 7X + 4Y = 100;
            for (int i = 0; i < 100 / 4; i++)
            {
                if ((100 - i * 4) % 7 == 0)
                {
                    int x = (100 - i * 4) / 7;
                    int y = i;
                    int z = 100 - x - y;
                    System.out.println(x + ":" + y + ":" + z);
                }
            }        // 2.彩票
            int[] caipiao = new int[7];
            for (int i = 0; i < 7; i++)
            {
                caipiao[i] = -1;
            }        for (int i = 0; i < 6; i++)
            {
                int ran = new Random().nextInt(33) + 1;
                while (haveSame(caipiao, ran))
                {
                    ran = new Random().nextInt(33) + 1;
                }
                caipiao[i] = ran;
            }        caipiao[6] = new Random().nextInt(16) + 1;
            // 打印
            for (int i : caipiao)
            {
                System.out.println(i);
            }
        }
        public static boolean haveSame(int[] caipiao, int ran)
        {
            for (int i = 0; i < 6; i++)
            {
                if (caipiao[i] == ran)
                {
                    return true;
                }
            }        return false;
        }
    }
      

  9.   

    第一题
    /**
    分别   把 公鸡母鸡雏鸡 设为 x,y,z
    可列式子: 5x+3y+3/z=100;
           x+y+z=100;
           消去 z 得:7x+4y=100;
     */
    public class bussiness {
         int x,y,z;
         public void jisuan(){
          for(x=1;x<=20;x++){
          for(y=1;y<=33;y++){
          int t=7*x+(4*y);
          if(t==100)
          { z=100-x-y;
          this.write();
          }
          }
          }
        
         }
         public void write(){
          System.out.println("公鸡的数量是 = "+x+"    "+"母鸡的数量数 = "+y+"    "+"雏鸡的数量数 = "+z);
        
         }
         public static void main(String args[]){
          bussiness b=new bussiness();
          b.jisuan();
        //  b.write();
         }
    }
      

  10.   

    第二个:
    import java.util.*;
    public class caipiao {
      int[] a=new int[7];
      int[] b=new int[7];
      public static void main(String args[]){
      Random r=new Random();
      caipiao c=new caipiao();
      int j=0;
      int y=r.nextInt(13);
      for(int i=0;i<5;i++){
      int t=r.nextInt(33);
      if(t!=0)
      c.a[i]=t;
      }
      for(int i=0;i<5;i++){
      if(j==0){
      c.b[j]=c.a[i];
      }
      for( j=i+1;j>0;j--){
      if(c.a[j]!=c.a[i])
      c.b[i]=c.a[i];
      }
      System.out.print(" "+c.b[i]+"   ");
      }
      if(y!=0)
        c.b[6]=y;
      else
      y=r.nextInt(13);
       System.out.print(c.b[6]);
    }
      }  
      

  11.   

     Lz是想完成作业呢,还是想学java?  这基础题目自己动手是最好的入门手段吧.
      

  12.   

    看了回复才发现是java区的帖子。#include <stdio.h>
    void main()
    {
    int a,b,c;
    for (a=1;a<20;a++)
    {for (b=1;b<33;b++)
    {for (c=1;c<100;c++)
    {
    if (100==(a+b+c)&&(100==(5*a+3*b+c/3)))
    {
    printf("公鸡:%d只;母鸡:%d只;雏鸡:%d只\n",a,b,c);
    }
    }
    }
    }
    }
    #include <stdio.h>
    void main(){
    int a;
    printf("请输入成绩:");
    scanf_s("%d",&a);
    char result=(a>90)?'A':((a>60)?'B':'C');
    printf("%c\n",result);
    }#include <stdio.h>
    #include <math.h>
    void main(){
    for (int i=1;i<1000;i++)
    {
    int sum=0;
    for (int j=1;j<=i/2;j++)
    {
    if (0==i%j)
    {
    sum+=j;
    if (sum==i)
    {
    printf("%d\n",i);
    }
    }
    }
    }
    }#include <stdio.h>
    void main(){
    float sum=0;
    float a=2,b=1,temp;
    for(int i=1;i<21;i++){
    sum+=a/b;
    temp=a;
    a=a+b;
    b=temp;
    }
    printf("%f",sum);
    }C的。看着改改吧。。
      

  13.   

    第2题:彩票生成系统:请移驾我的博客有详解:http://blog.csdn.net/zhangze_wancheng/article/details/7791257
      

  14.   

    这些题大家看起来可能很简单,对我们初学者还是很难啊,学java1个月,我们一周6节理论和6节上机,其他时间都是在家自习做作业,目前我们就学了循环和数组,而起循环学的不是很好,所以很多都做不起,大部分同学都是晕乎乎的过来的,哎。(其实大家的答案我也没有拿去交作业,只是看看能看懂不,因为交了也不是我自己的)谢谢大家!