當前位置:首頁 » 編程語言 » 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種

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:709
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:971
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:680
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:832
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:739
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:1079
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:310
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:190
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:877
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:834