[解题报告]HDU 1555 How many days?

本文介绍了一个解决特定经济问题的算法:如何使用有限的资金在每日固定消费的情况下,计算最多可以使用的天数。通过实例演示,提供了解决类似问题的方法,并通过代码实现验证了算法的有效性。

How many days?

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 4025    Accepted Submission(s): 2348


Problem Description
8600的手机每天消费1元,每消费K元就可以获赠1元,一开始8600有M元,问最多可以用多少天?
 

 

Input
输入包括多个测试实例.每个测试实例包括2个整数M, k,(2 <= k <= M <= 1000).M = 0, k = 0代表输入结束.
 

 

Output
对于每个测试实例输出一个整数,表示M元可以用的天数。
 

 

Sample Input
2 2 4 3 0 0
 

 

Sample Output
3 5
 

 

Author
8600
 

 

Source
 

 

Recommend
LL
 

 

 

 

 

为什么不可以直接用m+m/k?

m+m/k确实可以通过题目给的数据,但是这个公式不完整,仅仅算了一部分

事实上有有m+m/k+m-m/k+m/k/k.......
所以还是按照题目要求做,不要自作聪明

#include<stdio.h>
int main()
{
    int m,k;
    while(scanf("%d %d",&m,&k)!=EOF&&k>=2&&k<=1000&&m>=k&&m>=2&&m<=1000)
    {
        int tag=0,day=0;
        while(m--)
        {
            tag++;
            day++;
            if(tag==k)
            {
                m++;
                tag=0;
            }
        }
        printf("%d\n",day);
    }
    return 0;
}

 

转载于:https://www.cnblogs.com/TheLaughingMan/archive/2013/04/25/3043390.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值