Manchester


私信TA

用户名:wenyajie

访问量:331897

签 名:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

等  级
排  名 1
经  验 65524
参赛次数 1
文章发表 188
年  龄 0
在职情况 学生
学  校 Xiamen University
专  业 计算机科学

  自我简介:

在历史前进的逻辑中前进,这个逻辑就是人心向背的逻辑

解题思路:

已有空瓶子数是否小于一,小于不可换汽水;返回;

已有空瓶子数等于二,可换一瓶;

已有的空瓶子数%3求出剩下的空瓶子;

已有的空瓶子数/3求出可换的汽水数;

把剩下的空瓶子加上换的汽水数作为新的已有的空瓶子数,递归重复执行上述操作;

期间记录换的汽水瓶数即可;



注意事项:
对于新的数据,要把换的瓶数置0;

参考代码:

#include<stdio.h>

int M=0;  //记录换的瓶数

void  huanping(int c); //用于计算换的汽水瓶数

int main()
{
  int n[1000];  // 瓶子数量
  int i=0;
  scanf("%d",&n[0]);

  while(n[i]!=0)
  {
    i++;
    scanf("%d",&n[i]);

  } 
  for(int j=0;j<i;j++)
  {
   M=0;
   huanping(n[j]);
   printf("%d\n",M);
  }

  return 0;
}

void  huanping(int c)
{
  if(c<=1)
  return;

  if(c==2)
   {
   M++;return ;
   }

   int c1;
   M=M+c/3;

   c1=c/3+c%3; //compute the number of bottle after exchange

   huanping(c1);

   return ;

}


 

0.0分

15 人评分

  评论区

没有限制最多十次输入?n超过了100也没有限制?
2018-11-19 21:34:55
其实这题很简单
2018-08-28 18:34:24
讲解很清楚,很棒
2017-11-27 23:44:56