小练习

来源:互联网 发布:网络公选课答案 编辑:程序博客网 时间:2024/05/20 07:32

喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以多少汽水。编程实现。

#include<stdio.h>int main(void){   int money = 20;   int totol = money;   int empty = money;   while(empty>1)   {      totol += totol + empty/2;      empty = empty/2 + empty%2;   }    printf("%d\n",totol);return 0;}

最近学了函数的递归,顺便用递归解决一下,这里只写函数

int getNumber(int n){   if(n ==1)      {      return 1;      }    else if(n >=2 && n % 2 == 0 )    {      return n + getNumber(n/2);      }     else if(n >=2 &&  n % 2 !=0)     {     return n + 1 + getNumber(n/2);     }   }

当然我们从大量的结果发现,喝的水是钱数的二倍减一,所以可以简化成:

totol = money * 2 - 1;

这其实就是一种算法,把复杂的问题通过分析,找出规律。

1 0
原创粉丝点击