/*
Problem Deion
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
*/
#include <stdio.h>
#include <malloc.h>
typedef struct node{
    int m;
    int k;
    int d;
    struct node*next;
}NODE;
int main(){
    NODE *head,*temp;
    head = temp = (NODE*)malloc(sizeof(NODE));
    temp->d = 0;
    while(1){
        scanf("%d %d",&temp->m,&temp->k);
        if(!temp->m && !temp->k)
            break;
        else{
            temp->next = (NODE*)malloc(sizeof(NODE));
            temp = temp->next;
            temp->d = 0;
        }
    }
    temp->next = NULL;
    temp = head;
    while(temp->next){
        for(temp->d = 0; 1;){
            if(!(temp->m/temp->k)){
                temp->d += temp->m;
                break;
            }
            else{
                temp->d += temp->m;
                temp->m = temp->m / temp->k;
            }
        }
        temp = temp->next;
    }
    while(head->next){
        printf("%d\n",head->d);
        temp = head;
        head = head->next;
        free(temp);
    }
    free(head);
    return 0;
}

评论