| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2407 人关注过本帖
标题:有几道题,想请大虾们帮个忙
只看楼主 加入收藏
阿戴
Rank: 1
等 级:新手上路
帖 子:40
专家分:0
注 册:2007-12-31
收藏
得分:0 
我说了,他们都没反应,所以我问他们测试过没
2008-06-16 11:06
lai832
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-6-10
收藏
得分:0 
第一题:
/*海滩上有一堆桃子,5只猴子来分。
第一只猴子把这堆桃子凭据分为5份,多了一个,这只猴子把多的一个仍入海中,拿走了一份。
第二只猴子把剩下的桃子又分成5份,有多了一个,它同样把多的一个仍入海中,拿走了一份。
第三,第四,第五只猴子都是这样做的。
问:海滩上原来最少有多少个桃子?*/
#include<stdio.h>
#include<iostream>
#include<math.h>
int main(void)
{
    int sum,min,ave,check,m,n,i,j;
    printf("请输入猴子的数量(大于4):\n");
    scanf("%d",&n);
    //if(n<5)
    //goto INT1;
    min=0;
INT2:  min++;
    m=min;   
    for(i=0;i<n;i++)
    {
       sum=m*5+1;
       check=sum-int(sum/4)*4;
       if(check!=0)
       goto INT2;
       else
       m=sum/4;
    }
    printf("海滩上原来最少有%d个桃子.\n",sum);
    system("pause");
}

结果:12496个:
2008-06-16 15:27
yimoto
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2008-6-16
收藏
得分:0 
2008-06-16 15:48
界水乘风
该用户已被删除
收藏
得分:0 
回复 12# lai832 的帖子
提示: 作者被禁止或删除 内容自动屏蔽
2008-06-16 15:57
simpley
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2005-2-23
收藏
得分:0 
M*(M^(M-1)-P)+P
M是猴子数,P是猴子扔掉的桃子数
5*(5^4-1)+1=3121

myQQ::445750010
2008-06-16 16:29
lai832
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-6-10
收藏
得分:0 
写错,再看看这个:
/*海滩上有一堆桃子,5只猴子来分。
第一只猴子把这堆桃子凭据分为5份,多了一个,这只猴子把多的一个仍入海中,拿走了一份。
第二只猴子把剩下的桃子又分成5份,有多了一个,它同样把多的一个仍入海中,拿走了一份。
第三,第四,第五只猴子都是这样做的。
问:海滩上原来最少有多少个桃子?*/
#include<stdio.h>
#include<iostream>
int main(void)
{
    int sum,min,check,m,n,i;
    printf("请输入猴子的数量(大于4):\n");
    scanf("%d",&n);
    min=0;
INT1:  min++;
    m=min;   
    for(i=0;i<n-1;i++)
    {
       sum=m*5+1;
       check=sum-int(sum/4)*4;
       if(check!=0)
         goto INT1;
       else
         m=sum/4;
    }
    sum=int(sum/4)*5+1;
    printf("海滩上原来最少有%d个桃子.\n",sum);
    system("pause");
}
2008-06-17 13:15
lai832
Rank: 1
等 级:新手上路
帖 子:10
专家分:0
注 册:2008-6-10
收藏
得分:0 
看了Himpo的贴(10楼)后,改成以下样子,但总觉得有地方不对头.
/*对于一个输入的数组(假定有10个元素),请将其中最大的与第一个元素交换,最小的与最后一个元素交换,并将交换后的数组输出。*/
#include<stdio.h>
#include<iostream>
#define N 10

int main(void)
{
    int max,maxaddr=0,min,minaddr=0,i,temp,a[N]={0};
    printf("请级数组赋值:\n");
    for(i=0;i<N;i++)
      scanf(" %d",&a[i]);
    printf("\n你输入的数组是:\n");
    for(i=0;i<N;i++)
      printf("%d;\n",a[i]);
    max=a[0],min=a[0];
    for(i=0;i<N;i++)
    {
      if(max<a[i])
      {
        maxaddr=i;
        max=a[i];
      }
      if(min>a[i])
      {
        minaddr=i;
        min=a[i];
      }
    }
    temp=a[0],a[0]=a[maxaddr],a[maxaddr]=temp;
    if(minaddr==0)
      {
        if(maxaddr==N-1)
          goto INT1;
        else
          {
            temp=a[N-1],a[N-1]=a[maxaddr],a[maxaddr]=temp;
            goto INT1;
          }
      }
    temp=a[N-1];a[N-1]=a[minaddr];a[minaddr]=temp;
INT1:printf("处理后的数组是:\n");
    for(i=0;i<N;i++)
      printf("%d;\n",a[i]);
    system("pause");
}
2008-06-17 16:52
learnerboy
Rank: 2
等 级:论坛游民
帖 子:246
专家分:22
注 册:2007-11-11
收藏
得分:0 
谢谢大家给我指出错误!
下面是我改过了!如果还有错,请大家再给我指出来!学习不就是要这种精神吗??嘿嘿。。。。。
#include"stdio.h"
#define N 10
void swap(int &a,int &b);
int forw(int *array);
void main()
{
    int a[N],i;
    printf("请给数组赋值==>>\n");
    for(i=0;i<N;i++)
        scanf("%d",&a[i]);
    forw(a);
    printf("交换后的数组为:\n");
    for(i=0;i<N;i++)
        printf("%3d",a[i]);
    printf("\n");
}
int forw(int *array)
{
    int i,point1=0,point2=0,max=array[0],min=array[0];
    for(i=1;i<N;i++)
    {
        if(max<array[i])
        {
            max=array[i];
            point1=i;
        }
        if(min>array[i])
        {
            min=array[i];
            point2=i;
        }
    }
    if(point1==0&&point2==(N-1))
        return 1;
    if(point1==(N-1)&&point2==0)
    {
        swap(array[point1],array[point2]);
        return 1;
    }
    else
    {
        swap(array[0],array[point1]);
        swap(array[N-1],array[point2]);
        return 1;
    }
}
void swap(int &a,int &b)
{
    int temp;
    temp=a;
    a=b;
    b=temp;
}
2008-06-17 21:52
coming
Rank: 1
等 级:新手上路
帖 子:244
专家分:0
注 册:2008-4-20
收藏
得分:0 
第一题要逆推一下就能看出来规律咯,
2008-06-17 21:58
simpley
Rank: 1
等 级:新手上路
帖 子:262
专家分:0
注 册:2005-2-23
收藏
得分:0 
楼上的说的很对.编程的初步阶段差不多就是翻译,原题怎么说你就怎么写.语法掌握后,就不能满足翻译了.就要着力寻求算法.

myQQ::445750010
2008-06-17 22:49
快速回复:有几道题,想请大虾们帮个忙
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.041849 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved