Description
Z同学为了实现暑假去云南旅游的梦想,决定以后每天只消费1元,每花k元就可以再得到1元,一开始Z同学有M元,问最多可以坚持多少天。
Input
输入2个整数M, k,(2 <= k <= M <= 1000)。
Output
输出一个整数,表示M元可以消费的天数。
Sample Input
4 3
Sample Output
5
HINT
循环模拟。
Source
正确代码:
#include<stdio.h>
int main(void)
{
int m, k, i, sum1, sum2;
while(scanf("%d%d", &m, &k)!=EOF)
{
sum1 = 0;
for(i = m; i >= 1; i --)
{
sum1++;
if(sum1 % k ==0)
{
i++;
}
}
printf("%d\n", sum1);
}
return 0;
}
{
int m, k, i, sum1, sum2;
while(scanf("%d%d", &m, &k)!=EOF)
{
sum1 = 0;
for(i = m; i >= 1; i --)
{
sum1++;
if(sum1 % k ==0)
{
i++;
}
}
printf("%d\n", sum1);
}
return 0;
}
解题思路:
1:只要sum1是k的倍数就加1元
错误原因:
1:应该把sum1放在if语句之前,这样才能确保每花k元都能加1. 我错在把sum1放在了if语句之后。
经验总结:
1:一定要注意for语句中各个条件的顺序。