acm急死了救命啊

来源:百度知道 编辑:UC知道 时间:2024/05/18 01:37:33
Cinderella在她生日那天收到了很多很多的糖果,她妈妈为了不让她多吃糖,只允许她每天吃一半数目的糖果。但Cinderella每次吃完一半后都忍不住要多吃一颗。她很想知道这样吃下去n天后还剩下多少颗糖果。
Input
输入数据为一行 m,n (1 <= m <= 10000,n > 0).分别表示总共的糖果数 m 和要查询的天数 n.
Output
输出数据只有一行。如果第n天还剩有糖果则输出剩余糖果的数目,如果没有剩余则输出“NO Candies!”。
Sample Input
20 2

Sample Output
4

Hint
注意:本题中9的一半是4,所以剩余9-(4+1)=4个

#include <stdio.h>

int Remain(int candies, int day)
{
return day > 0 ? Remain(candies - candies/2 - 1, day-1) : candies;
}

int main()
{
int m, n;
scanf("%d%d", &m, &n);

if(m < 0 || m > 10000 || n <= 0)
{
printf("Invalid value inputed!");
return 0;
}

int iRemain = Remain(m, n);
if(iRemain <= 0)
printf("No Candies!");
else
printf("%d", iRemain);
}