回 帖 发 新 帖 刷新版面

主题:[讨论]请高手帮帮编程2道题

1、 已知6≤a≤30,15≤b≤36,编一程序求出满足不定方程 2a+5b = 126 的全部整数组解。如(13 , 20)就是其中的一组解。
   



     2、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃一个。以后每天都吃了前一天剩下的一半零一个。到第10天,只剩下一个桃子了。编程试求第一天共摘了多少桃子。

回复列表 (共5个回复)

沙发

#include<stdio.h>
#include<stdlib.h>
#define EXPR( a , b ) ( 2 * a + 5 * b )


int main(void)
{
    int a,b;
    int count=1;
    
    
    for( a = 6 ; a <= 31 ; a++ )
    {
        for( b = 15 ; b <= 36 ; b++ )
        {
            if( EXPR( a , b )==126 )
                printf("第%d组解为( %d , %d )\n", count++,a,b); 
        }
    }
    
    
    
    system("pause");
    return 0;
}

板凳

***************************************************/ 

#include<stdio.h>
#include<stdlib.h>
#define LAST 1
#define TIME 10
#define DEBUG 0


/*
**用递归求出桃子总数,从最后一天开始,依次求前一天的桃子总数,最后得出第一天
**的桃子总数 
*/
int Previous( int next , int count ) 
{
    if( count > TIME - 1 )
    {
        printf( "桃子总数为:%d\n" , next );
    }
    else
    {    
#if DEBUG    
        printf( "(%d , %d)\n",count ,next ); /*测试结果*/
#endif
    
        Previous( ( next+1 ) * 2 , count + 1 );
    }
}


int main(void)
{
    int count = 1;        /*用于统计递归次数,相当于天数,并用此作为递归结束条件*/
    int start = LAST;

    Previous( start , count );            /*调用函数*/ 
    
     
    system("pause");
    return 0;
}

3 楼


方程2a+5b=126
  右端为偶数
  左端2a为偶数则5b必然为偶数则b必然为偶数
  可以将十一行改为for(b=16;b<=36;b+=2)
  效率能提高些,不过程序太小也提高不了几微秒[em2]

4 楼

还真是啊!这我道没注意。

5 楼


不错,大家都有道理

我来回复

您尚未登录,请登录后再回复。点此登录或注册