當前位置:首頁 » 編程語言 » c語言猴子爬山

c語言猴子爬山

發布時間: 2024-01-07 14:00:14

1. c語言編程題,關於猴子分桃問題

正確的答案是3121。
手工驗算一下吧,又不難的!
#include
<stdio.h>
//判斷能否被合理的分配
int
divide(int
n,int
m)
{
if(n/5==0
||
n%5!=1)
{//不足5個或不能分5份多1個,分配失敗
return
0;
}
if(m==1)
{//分到最後一個猴子,說明能分配成功
return
1;
}
return
divide(n-n/5-1,m-1);
}
main()
{
int
n;//桃子數量
for(n=1;;n++)
{
if(divide(n,5))
{//判斷能否被合理的分配
printf("%d\n",n);
break;
}
}
}

2. 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");
}
試試...

3. 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種

熱點內容
連接ftp異常中斷 發布:2025-09-16 12:52:33 瀏覽:287
3m移動辦公伺服器地址大全 發布:2025-09-16 12:22:35 瀏覽:256
什麼是直男的快樂密碼 發布:2025-09-16 12:22:32 瀏覽:910
修改資料庫存儲引擎 發布:2025-09-16 12:21:48 瀏覽:77
安徽調度伺服器品牌雲伺服器 發布:2025-09-16 12:02:17 瀏覽:777
資料庫表設計教程 發布:2025-09-16 10:50:47 瀏覽:348
朋友圈緩存如何清除 發布:2025-09-16 10:49:57 瀏覽:446
sqlserver數據類型 發布:2025-09-16 10:41:16 瀏覽:740
如何配置全站時間同步系統 發布:2025-09-16 10:19:13 瀏覽:177
java解析json文件 發布:2025-09-16 10:10:41 瀏覽:977