/* Problem Deion 8600的手机每天消费1元,每消费K元就可以获赠1元,一开始8600有M元,问最多可以用多少天? Input 输入包括多个测试实例.每个测试实例包括2个整数M, k,(2 <= k <= M <= 1000).M = 0, k = 0代表输入结束. Output 对于每个测试实例输出一个整数,表示M元可以用的天数。 Sample Input2 24 30 0Sample Output35 */ #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;}

评论