本帖最后由 liutianxiong888 于 2010-05-31 18:25:14 编辑

解决方案 »

  1.   

    第一题:
    int person = 100; 
     int num=0;
    for(int i = 0;i<person;i++)
    {
    num++;
    if(i%3==0)
    {
    i++;
    }
    }
    System.out.println(num);
      

  2.   

    第二题:
    int arr[]= {1,4,5,7,9,3,5,7,8,3};
    int index = 0;
    for(int i=0;i<arr.length-4;i++)
    {
    int first = arr[i]+arr[i+1]+arr[i+2]+arr[i+3];
    int second = arr[i+4]+arr[i+1]+arr[i+2]+arr[i+3];
    if(first<second)
    {
    index=i+1;
    }
    }
    System.out.println("下标为:"+index);
     
    我是初学者  不知道做得对不对
      

  3.   

    第一个
    n%3=1
    num=n-1
    n%3=0
    num=n
      

  4.   

    import java.util.Scanner;
    public class Test1 {
    public static void main(String[] args) {
    /*n个运动员比完赛后口渴了,到附近小卖部买水,正好小卖部搞促销活动,
    凭三个空瓶既可换一瓶水,请问他们最少需要多少个空瓶,
    才能使每人都有一瓶水?用JAVA编程实现*/
    /*我的分析:
     * 当时一个人时:1:3
     * 二:2:5
     * 三:3:7
     * 四:4:9
     * n: n:n*3-(n-1)
     */
    Scanner input=new Scanner(System.in);
    System.out.println("请输入你的人数:");
    int man=input.nextInt();
    int sum=0;
    sum=man*3-(man-1);
    System.out.println(sum);

    }}
    大家看看我的是否正确?
      

  5.   


    public static void cuteBuy(int n)//运动员的数
    {
    int ntob=0;
    // int temp=counts;
    int sum=0;
    int buy=0;
    while(sum<n)
    {
    if(sum!=0&&sum%3==0)
    {
    sum++;
    }
    else
    {
    sum++;
    buy++;
    }
    }
    System.out.printf("队员有%1$d名需要买%2$d瓶水",n,buy);
    }}
      

  6.   

    第二个
    比较 第一个和第四个数的大小
    和传统方法不一样!!
    public class GetFourMax { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub int []a={1,45,67,354,2435,3,45,32,678,34,1,2,5};
    getMax(a);
    } public static void getMax(int[]a)
    {
    int  max=0;
    int temp;
    int p=0;
    for(int i=0;i+4<a.length;i++)
    {
    if(a[i]>a[i+4])
    {
    temp=cuteSum(a,i);
    p=max>temp?p:i;
    max=max>temp?max:temp;
    }
    }
    System.out.printf("在第%1$d个值到第%2$d个值加起来的和最大为%3$d",p+1,p+5,max);
    }
    public static int cuteSum(int a[],int i)
    {
    int sum=0;
    int j=0;
    for(;j<4;j++)
    {
    sum+=a[i++];
    }
    return sum;
    }
    }
      

  7.   

    第一题:java.util.Scanner scan = new java.util.Scanner(System.in);
    int n = scan.nextInt();
    int k = n%4;
    int j = n/4;
    int result = j*3+k;
    System.out.println(result);
      

  8.   

    第二题:public class Test{        public static void main(String[] args){
    int[] digit = {2,5,4,3,22,1,8,7,9,23,12,11,20};
    sort(digit);
    System.out.println();
    int len = 1;
    int sum = 0;
    int max = 0;
    for(int i=1;i<digit.length;i++){
    if(digit[i]==digit[i-1]+1){
    len++;
    if(len>=4){
    sum = 4*digit[i-3]+6;
    max = i;
    }
    }else{
    len = 1;
    }
    }
    System.out.println(digit[max-3]+" "+digit[max-2]+" "+digit[max-1]+" "+digit[max]+"  sum:"+sum);
        }    public static void sort(int[] digit){
    for(int i=0;i<digit.length-1;i++){
            int m = i;
    for(int k=i+1;k<digit.length;k++)
    if(digit[k]<digit[m])
    m = k;
    if(i!=m){
    int j = digit[i];
    digit[i] = digit[m];
    digit[m] = j;
    }
    }
    }
    }
      

  9.   

    第一题:package test;public class Test { public static void main(String[] args) { int person = 8;
    int x = 0; // //喝
    int y = 0;
    while (x < 100) { if (x % 3 == 0 && x >= 3) {
    person--;
    x = x % 3;
    } else {
    x++;
    y++;
    person--;
    }
    if (person == 0) {
    break;
    }
    }
    System.out.println(y);
    }
    }
      

  10.   

    杯具,那个100没改过来:再贴package test;public class Test { public static void main(String[] args) { int person = 8;
    int x = 0; // //喝
    int y = 0;
    while (true) { if (x % 3 == 0 && x >= 3) {
    person--;
    x = x % 3;
    } else {
    x++;
    y++;
    person--;
    }
    if (person == 0) {
    break;
    }
    }
    System.out.println(y);
    }
    }
      

  11.   

    第一道很简单,答案就是2N,N个运动员只要2N个瓶子就能每人一瓶水,
    分析,一个运动员喝一瓶水需要3个空瓶子,那么它只要带两空瓶子,然后问老板赊一瓶水喝,喝完后正好三个空瓶子。
    第二道题我没怎么看明白。
      

  12.   

    第一题貌似LS的都有问题,只考虑到3换1,但是空瓶3个了还能换1个 换的满3个继续能换用递归比较合理第二题比较 i i+3 看似巧妙,不过一不小心就出错,12L的方法
    {5,5,5,5,1,9999,2,5,5,5,9998, 5, 5};
     1 2 3 4 5  6   7 8 9 10  11 12 13    
    输出:
    在第6个值到第10个值加起来的和最大为10011
    很明显 9999,2,5,5,5  <5,5,9998, 5, 5个人见解,错了多包含,去实现下看看