猴子摘桃c語言
A. c語言作業:用遞歸法怎麼做猴子摘桃知道的大哥大姐幫幫忙!
猴子摘桃問題
猴子第一天摘下N個桃子,當時就吃了一半,還不過癮,就又多吃了一個。第二天又將剩下的桃子吃掉一半,又多吃了一個。以後每天都吃前一天剩下的一半零一個。到第10天在想吃的時候就剩一個桃子了,問第一天共摘下來多少個桃子?
#include<stdio.h>
intgetPeachNumber(n){
intnum;/*定義所剩桃子數*/
if(n==10)
return1;/*遞歸結束條件*/
else{
num=getPeachNumber(n+1)*2+2;/*遞歸*/
printf("第%d天所剩桃子%d個 ",n,num);/*天數,所剩桃子個數*/
}
returnnum;
}
intmain(void){
intnum=getPeachNumber(1);
printf("猴子第一天摘了%d個桃子。 ",num);
getch();/*屏幕暫留*/
return0;
}
運行結果
B. 猴子摘桃問題我寫的c語言程序哪裡出錯了。
#include <stdio.h>
int ok(long n)
{
int i,count;
count=0;
for(i=0;i<5;i++)
{
if(n%5!=1)
break;
else
{
n=(n-1)/5*4;
count++;}
}
return count;
}
void main()
{
int ok(long n);
int k,l,a[1000];
long n;
l=0;
for(n=6;n<100000;n++)
{
if(ok(n)==5)
{
//printf("%d\n",n);
a[l]=n;
l++;
}
}
printf("一共有%d種方案\n",l);
for(k=0;k<l;k++)
{
printf("若猴子拿到和吃掉的桃總數為:");
printf("%d\n",a[k]);
printf("則每隻猴子拿到和吃掉的桃數\n");
printf("第一隻猴子拿到和吃掉的桃數:");
printf("%d\n",a[k]=(a[k]-1)/5+1);
printf("第二隻猴子拿到和吃掉的桃數:");
printf("%d\n",a[k]=(4*a[k]-1)/5+1);
printf("第三隻猴子拿到和吃掉的桃數:");
printf("%d\n",a[k]=(4*a[k]-1)/5+1);
printf("第四隻猴子拿到和吃掉的桃數:");
printf("%d\n",a[k]=(4*a[k]-1)/5+1);
printf("第五隻猴子拿到和吃掉的桃數:");
printf("%d\n",a[k]=(4*a[k]-1)/5+1);
printf("*********************************************************\n");
}
}
//你的程序沒控制好變數
C. 用C語言怎麼做猴子偷桃
#include <stdio.h>
#include <stdlib.h>
int gouzitigui(int n){
printf("xxxxxxxxxxxxx\n");
if(n==1){
return 1;
}else{
return (gouzitigui(n-1)+1)*2;
}
}
int main()
{
int i,n=1;
printf("猴子最初有%d個桃子",gouzitigui(10));
return 0;
}
從題目中可以得出後一天是前一天加1乘以2,
D. 猴子偷桃的C程序問題
雖然我是Pascal(Delphi?),但是我覺的你都應該是對的(c的For循環我一直看不懂的說)
你檢查下循環對不對。
E. C語言作業:用遞歸法怎麼做猴子摘桃知道的大哥大姐幫幫忙,我自己想破腦袋想不出來!
#include <stdio.h>
const unsigned int &fun_last(const int &n,const int &day)
{
if(n<0) return -1;
if(day==1) return n;
return fun_last(2*(n+1),day-1); //當天剩n個,前一天剩下2*(n+1)個
}
int main(void)
{
int day=10,n=1;
printf("第一天摘下%d個桃子\n",fun_last(n,day));
return 0;
}
F. c語言程序猴子偷桃問題
#include<stdio.h>
int main()
{
int i,n=1;
for(i=9;i>0;i--)
n=(n+1)*2;
printf("the number of all peach is %d ",n);
return 0;
}
G. C語言轉化方程。 猴子摘桃
這道題我的c語言書上有。給你看一下:
假設第一天有a1個桃,第二天有a2個,……,第九天有a9個,第10天有a10個。在這裡面只有a10=1是知道的,我們要計算a1,而我們可以看出,a1~a10存在著簡單的聯系:
a9=2(a10 1)
a8=2(a9 1)
a7=2(a8 1)
…
a1=2(a2 1)
由此我們可以看出這是一個遞推關系。
H. 用鏈表(C語言)解決解決猴子偷桃問題
#include<stdio.h>
#include<stdlib.h>
int main()
{
int i,j;
j=1;
for(i=1;i<10;i++)
{
j=2*(j+1);
}
printf("第一天摘桃子的個數為%d\n",j);
return 0;
}
I. 猴子摘桃!C語言,老是輸出自己的值,新人求教
#include<stdio.h>
intq(inta)
{
inti;
intb=1;
intc;
for(i=1;i<=a-1;i++)
{
c=2*(b+1);
b=c;
}
returnc;
}
intmain(void)
{inta;
while(~scanf("%d",&a))
{if(a!=1)
{
printf("%d ",q(a));}
elseprintf("1 ");
}