當前位置:首頁 » 編程語言 » 猴子吃桃c語言問題的流程圖
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

猴子吃桃c語言問題的流程圖

發布時間: 2022-06-14 00:30:01

1. 猴子吃桃問題c語言

/*猴子第一天摘下N個桃子,當時就吃了一半,還不過癮,就又多吃了一個。*/
/*第二天又將剩下的桃子吃掉一半,又多吃了一個。*/
/*以後每天都吃前一天剩下的一半零一個。*/
/*到第10天在想吃的時候就剩一個桃子了*/
/*問第一天共摘下來多少個桃子?*/

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>

/*第n天所剩桃子數*/
intgetPeachNumber(intn){
intnum;/*定義所剩桃子數*/
inti=0;
if(n==10)
return1;/*遞歸結束*/
else{
num=getPeachNumber(n+1)*2+2;/*遞歸*/
printf("第%d天:%d個桃子 ",n,num);/*第n天剩num個桃子*/
}
returnnum;
}

intmain(void){
intnum;

puts("每天剩餘的桃子數:");
num=getPeachNumber(1);
putchar(' ');

puts("================================================================");
putchar(' ');
printf("猴子第一天摘了%d個桃子! ",num);
putchar(' ');

getch();/*屏幕暫留*/
return0;
}

運行結果

2. 用C語言解決猴子吃桃問題!!!

#include
<iostream.h>
void
main()
{
int
day,n1,n2;
day=9;
n2=1;
//n2表示剩下的桃子
while(day>0)
{
n1=(n2+1)*2;
n2=n1;
day--;
}
printf(「%d\n」,n2);
}
第二種方法
#include
<stdio.h>
void
main()
{
int
day,sum=1;
for(day=1;day<=9;day++)
//剩一個桃子是從第九天剩下的,所以要算九次
sum=(sum+1)*2;
printf("%d\n",sum);
}
第三種:
#include<stdio.h>
main()
{
int
day=9,n=1;
while(day-->0)
n=(++n)*2;
/*第1天的桃子數是第2天桃子數加1後的2倍*/
printf("%d",n);
}
第四中方法:
#include
"stdio.h"
main()
{
int
day,m,n;
for(n=2;;n++)
{
m=n;
for(day=1;day<10;day++)
m=m/2-1;
/*m為吃剩下的桃*/
if(m==1)
/*第十天,剩下一個*/
break;
}
printf("第一天摘下的桃子數:%d\n",n);
/*n為符合條件的*/
}

3. c語言猴子吃桃子問題怎麼做

1、打開visual C++ 6.0-文件-新建-文件-C++ Source File

4. C語言中的猴子吃桃子問題

#include<math.h>

#include<stdio.h>

intf(inta,intb)

{

intx=b,i;

for(i=a;i>=1;i--)

{

x=(x+1)*2;

}

returnx;

}

intmain()

{

inta,b=1;//b是最後一天剩的桃子樹,為1;

intmax;

printf("請輸入天數: ");

scanf("%d",&a);

while(a!=0)

{

max=f(a,b);

printf("猴子第一天摘的桃子數為:%d ",max);

scanf("%d",&a);

}

return0;

}

5. C語言猴子吃桃問題流程圖

一個猴子摘了一些桃子,它每天吃了其中的一半然後再多吃了一個,
直到第10天,它發現只有1個桃子了,問它第一天摘了多少個桃子?
猴子分N天吃完了桃子,要想求出第1天的桃子數,就先要求出第2天的桃子數,.......因此,有:
a1=(a2+1)*2;
a2=(a3+1)*2;
a3=(a4+1)*2;
......
a9=(a10+1)*2;
a10=1;
現在就知道了演算法,我們可以用遞歸來求解:
int qiu(int a,int n)
{
if(n==1) a=1; //第10天就只剩1個了
else a=(a(n-1)+1)*2; //前一天總比後1天多一半加1
}
-------------------------------------
#include<stdio.h>
int qiu(int a,int n);
main(){
int zuih=1,tians=10;//最後一天的個數,天數
long sum;
sum=qiu(1,10);
printf("di yi tian you %ld ge.\n"):
}
int qiu(int a,int n)
{
if(n==1) a=1; //第10天就只剩1個了
else a=(a(n-1)+1)*2; //前一天總比後1天多一半加1
}

6. 第六題猴子吃桃,要完程序,初學C語言

猴子吃桃的C語言遞歸程序如下:

#include<stdio.h>

intf(intn);

intmain()

{

printf("%d",f(1));

return0;

}

intf(intn)

{

if(n==10)return1;

return(f(n+1)+1)*2;

}

運行結果:

1534

7. C語言 猴子吃桃問題

#include"stdio.h"
voidmain()
{
inta=10,b,c=1;
while(--a)
{
b=(c+1)*2;
c=b;
}
printf("猴子的桃子共有:%d ",b);
}

8. 請用C語言編寫一個程序,「猴子吃桃」問題

我實在想不通為什麼他們能寫這么多
int
n
=
1;//n為桃子數量
for
(int
i
=
0;
i
<
9;
i++)
{//9次循環
因為第十天
他沒得吃
n
=
(n
+
1)
*
2;
}
printf("%d",
n);
結果為1534
這個數據就是正確答案

9. C語言編程猴子吃桃子問題

猴子只吃了99次。第100次還沒吃呢。

只是這求到100天之前,這數字也是太大了吧?

int早就溢出了。

用double只能保證前面的大數正確,後面的尾數就全變為0了(否則要使用高精度計算,編程代碼就復雜多了):

#include<stdio.h>
intmain()
{intday=99;
doublex1,x2=1;
while(day)
{x1=(x2+1)*2;x2=x1;day--;}
printf("%.0lf ",x1);
return0;
}

10. C語言遞推流程圖,有一堆不知數量的桃子,猴子第一天吃掉一半,覺得不過癮,又多吃了一個;

欲解答這個題,首先理順思路。解答這個題,可以用倒推法,亦可用正推法,把數學問題解決了,在編程就不難了。
這個題,用倒推法比較簡單;推理如下:
"到第10天早上,猴子發現只剩一個桃子了",說明第九天只有4個桃子(吃掉一半加1,也就是吃掉3個,到第十天就只剩下1個了嘛),所以第八天只有桃子(4+1)乘以2,也就是10個桃子(吃掉一半加1,也就是6個就只剩下4個)…… ……找到規律就可以計算了。
規律:吃掉了一半多一個,那麼剩下的就是比一半少一個了。
1.第九天有桃子(1+1)×2=4 個
2.第八天:(4+1)×2=10
3.第七天:(10+1)×2=22
4.第六天:(22+1)×2=46
5.第五天:(46+1)×2=94
6.第四天:(94+1)×2=190
7.第三天:(190+1)×2=382
8.第二天:(382+1)×2=766
9.第一天:(766+1)×2=1534
附程序:
#include<stdio.h>
void main()
{
int i,sum=1;
for (i=1;i<=9;i++)
sum=(sum+1)*2;
printf("桃子總數為:%d\n",sum);

}