C语言猴子分桃问题

C语言猴子分桃问题,第1张

#include <stdio.h>

void main(){

int i,s,n,k,num//定义s为最初桃子的数量;巧掘num为最初桃子数减去k

scanf("%d%d",&n,&k)

for(num=nnum<=65535num+=n)//因为可以被分成n份,num一定是n的倍数。

{ s=num+k

for(i=1i<=ni++)//i用来控制n次循环,即分n次

if(s%n==k)//判断桃子能否被分n份并余下一个,成立就开始往下分,

s=(s-k)*(n-1)/n

else

break//不成立迹宽塌就直接跳出,不用执行后面的循环,即分不下去了

if(i==n+1)//注意:n次循环之后,i值为n+1。既然已经分了n次,那么num就找到了。姿圆

{

s=num+k

printf("海滩上原来最少有%d个桃子\n",s)

break }

}}

#include <stdlib.h>

#include<stdio.h>

#define N 10

#define M 20

struct monkey

{

int id

int tao

}

struct queue

{

struct monkey content[N]

struct monkey* head

struct monkey* tail

int length

}

int queue_init(struct queue** q)

{

(*q) = (struct queue*)malloc(sizeof(struct queue))

(*q)->head = &(*q)->content[0]

(*q)->tail = &(*q)->content[0]

(*q)->length = 0

return 0

}

int queue_in(struct queue* q,struct monkey in)

{

if(q->length == 0)

{

*(q->tail) = in

q->length++

}

else

{

q->tail++

*(q->tail) = in

q->length++

}

return 0

}

int queue_out(struct queue* q, struct monkey* out)

{

int i = 0

*(out) = *(q->head)

for(i <q->length-1i++)

q->content[i] = q->content[i+1]

q->tail--

q->length--

return 0

}

//队启缺首到队尾

int queue_a(struct queue* q)

{

struct monkey temp

queue_out(q, &temp)

queue_in(q,temp)

return 0

}

int main()

{

struct monkey data[N]

struct queue* q = NULL

struct monkey temp

int i

int kuang = 0

for(i=0i<Ni++)

{

data[i].id = i+1

data[i].tao = 0

}

queue_init(&q)

for(i=0i<Ni++)

queue_in(q, data[i])

for(i=0i<Ni++)

{

printf("%d\t%d\n",q->content[i].id,q->content[i].tao)

}

printf("leng=%d\n",q->基磨length)

printf("head %d\t tail %d\搏旁斗n",q->head->id,q->tail->id)

i = 0

while(q->length != 0)

{

if(kuang == 0)

{

i++

kuang += i

}

//队首猴取桃

if(q->head->tao + kuang <M)

{

q->head->tao += kuang

kuang = 0

queue_a(q)

}

else

{

kuang -= M - q->head->tao

q->head->tao += M - q->head->tao

queue_out(q, &temp)

printf("%d\t%d\n",temp.id,temp.tao)

}

}

return 0

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12364394.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存