小猴編程方法
㈠ c語言編程 小猴吃了5個桃子,大猴吃的是小猴的3倍少1,編程並輸出他們共吃多少桃
……這還要編程
#include<stdio.h>
void main()
{
int a=5;
printf("一共吃了%d個桃\n",a+3*a-1);
}
㈡ c語言編程解決小猴爬山
上山下山應該是一樣的,都是讓電腦一個值一個值去判斷。我的想法是讓電腦先判斷出所有可能的組合,比如2+3+5和3+2+5是一個概念,然後建立一個排列組合的函數,對組合進一步處理。上山為例:
#include<stdio.h>
intjc(inta)//階乘
{
inti,j=1;
for(i=a;i>0;i--)
{
j=j*i;
}
returnj;
}
intmain(intargc,char*argv[])
{
intn;//方法數
constintt=50;//台階數
inti,j,k;
for(i=0;i<=25;i++)//2*25=50
for(j=0;j<17;j++)//3*16=48
for(k=0;k<13;k++)//4*12=28
{
if(2*i+3*j+4*k==t)//兩步、三步或四步
{
n=n+jc(i+j+k)/(jc(i)*jc(k)*jc(j));
}
}
printf("上山總數為:%d種 ",n);
return0;
}
這個程序計算出來上山有3731種
㈢ C語言程序設計,猴子選大王
#include<stdio.h>
#include<stdlib.h>
main()
{ int a[50];
int i,j,M,N,t=0;
printf("input two number.\n");
scanf("%d %d",&N,&M);
for(i=0;i<N;i++)
a[i]=i+1;
for(j=1,i=0;;j++,i++)
{
if(i==N)i=0;
if(a[i]==0){j--;continue;}
if(j%M==0){a[i]=0;t++;}
if(N-t==1)break;
}
for(i=0;i<N;i++)
if(a[i]!=0) printf("猴王是第%d個.\n",a[i]);
system("pause");
}
試試...
㈣ 猴子選大王的編程,數據結構方法
如果給好評的話,麻煩寫一句:
章魚桶是個好人
不確定具體題目,從網上摘抄來的題目:
山上有n只猴子要選大王,選舉辦法如下:所有猴子從1到n進行編號並圍坐一圈,從第一號開始按順序1,2,...m繼續報數,凡是報m號的猴子都退出到圈外,照此循環報數,直到圈內只剩下一隻猴子時,這只猴子就是大王.輸出大王的編號。
這個題目是循環鏈表的應用,循環鏈表參見:
http://ke..com/view/178643.htm
#include<stdio.h>
#include<stdlib.h>
{
intposition;
CircularLinkedListElement*next;
};
intmain(void)
{
/*
變數聲明
*/
intn,m;
inti;
CircularLinkedListElement*start;
CircularLinkedListElement*p;
CircularLinkedListElement*q;
intstep;
/*
讀入猴子數量n,以及淘汰的號碼m
注意輸入的是正整數,為了滿足一般從0開始計數的規律,讀入後將n、m均減一
*/
printf("Pleaseentermonkeysnumbern:");
scanf("%d",&n);
n--;
if(n<=0)
{
fprintf(stderr,"**Error:Monkey'snumbershouldbepositive. ");
return1;
}
printf("Pleaseenterobsoletenumberm:");
scanf("%d",&m);
if(m<=0)
{
fprintf(stderr,"**Error:. ");
return1;
}
m--;
/*
創建循環鏈表
*/
start=(CircularLinkedListElement*)malloc(sizeof(CircularLinkedListElement));
if(start==NULL)
{
fprintf(stderr,"**Error:mallocerror. ");
return1;
}
start->position=0;
start->next=NULL;
p=start;
for(i=1;i<=n;i++)
{
q=(CircularLinkedListElement*)malloc(sizeof(CircularLinkedListElement));
if(q==NULL)
{
fprintf(stderr,"**Error:mallocerror. ");
return1;
}
q->position=i;
q->next=NULL;
p->next=q;
p=q;
}
p->next=start;
/*
開始淘汰猴子
*/
step=1;
while(start->next!=start)
{
printf("#step%d ",step++);
printf("Currentmonkeys:");
p=start;
while(p->next!=start)
{
printf("%d",p->position+1);
p=p->next;
}
printf("%d ",p->position+1);
p=start;
for(i=0;i<(m-1);i++)
p=p->next;
q=p->next;
p->next=q->next;
start=q->next;
printf("Obsoletemonkeyis:%d ",q->position+1);
free(q);
}
/*
輸出猴王
*/
printf("Themonkeykingis%d. ",start->position+1);
return0;
}
英文系統,所以輸出都寫的是英文,見諒
㈤ 核桃編程和小猴編程哪個好
兩個各有好處,都非常不錯。
核桃編程是面向青少年的開源編程科技創新平台,通過自主研發開源編程工具和提供SaaS產品一體化服務,打造青少年編程創新社區及青少年編程開源生態,致力於讓青少年收獲編程的快樂。
小猴編程系學而思培優旗下編程品牌,適合6-16歲中小學生,為培養孩子的思考能力、動手能力、表達能力、創新能力及合作能力提供助力。
㈥ 猴子吃桃問題編程,初學者能看懂的編程
分析:
①設x1為前一天桃子數,設x2為第二天桃子數,則
x2=x1/2-1, x1=(x2+1)*2
x3=x2/2-1, x2=(x3+1)*2
以此類推: x前=(x後+1)*2 ;
②從第10天可以類推到第1天,是一個循環過程。程序如下:
#include <iostream>
using namespace std;
int main( )
{
int day,x1,x2;
cin>>day;
x2=1;
while(day>0)
{
x1=(x2+1)*2; /*第一天的桃子數是第2天桃子數加1後的2倍*/
x2=x1;
day--;
}
cout<<"the total is "<<x1<<endl;
}
㈦ 計算機編程c++ 猴子分桃
#include<iostream>
#include<map>
usingnamespacestd;
longlongfastpow(inta,intb){
longlongans=1;
longlongtemp=a;
while(b){
if(b&1){
ans*=temp;
}
temp*=temp;
b>>=1;
}
returnans;
}
intmain(){
intN,M;
cin>>N>>M;
longlongleft=(M-1)*(fastpow(M-1,N-1)-1);
if(left==0){
left=M-1;
}
cout<<left<<endl;
for(inti=0;i<N;i++){
if(left%(M-1)){
cout<<"ERROR:"<<left;
}
else{
left=left/(M-1)*M+1;
}
}
cout<<left<<endl;
}
㈧ 編程 猴子吃桃問題 猴子第一天摘下若干個桃子當機吃了一半還不過癮又吃了一個 以後每天早
先分析問題:用逆向思維來思考它,根據題意「以後每天早上吃前天剩下的一半零一個」,則我們可以用逆向思維來推導它,即從第十天往前推。已知第十天有一個,根據題意第九天應該就是(1+1)*2=4個,第八天應該就是(4+1)*2=10,第七天應該就是(10+1)*2=22,第六天應該就是(22+1)*2=46,
依此類推,直至第1天應該就是第2天(766+1)*=1534個桃子,即猴子第一天摘了1534個桃子。
為了驗證這個推導的正確性,你可以按正常邏輯來把它(即此時由前往後)推導,即由第一天1534個桃子,第二天就是1534/2-1=766個桃子,依此類推,直至第十天,那麼猴子此時就會發現只剩一個。
至此,我們由了推導的思想,再來編寫的代碼,就是小菜一碟的事情啦,實現的它方式無非就是那麼兩種,一種是簡單的for循環,另一種是遞歸。這里我採用遞歸,因為解決此類問題往往用遞歸來思考它,會讓問題變得更簡單。按照數學思維來說 就是求未知數,則可以根據已知數出發進行求解(那麼這里的已知數已經告訴了我們,它說第十天只有一個桃子)。
下面是我的遞歸演算法來求解它的方法:
#include<iostream>
usingnamespacestd;
intrecurrent_monkey(intdays)//猴子吃桃遞歸
{
intpeach;
if(days==10)peach=1;//遞歸出口條件(已知條件第10天只有一個桃子)
elsepeach=(recurrent_monkey(days+1)+1)*2;
returnpeach;
}
intmain()
{
intdays=1;
cout<<recurrent_monkey(days)<<endl;
}
㈨ 一個有關猴子吃桃子的編程題,用c語言循環語句怎麼做
1、首先在電腦中打開vc6.0,新建一個項目,添加頭文件,如下圖所示。
㈩ java編程猴子選猴王問題講下思路就好了。
利用數組,進行循環
int a[]=new int[max_size];
for(i=0;i<M;i++) a[i]=0;
int flag=0;
for(i=0,j=0;(i<M)&&(flag<M-1);i++)
if (a[i]==0) {
++j;
if(j==N){
j=0;
a[i]=1;
flag++;}
}
system.out.println("i+1就是那個猴王");