P1150 Peter的烟-C语言
1、题目
2、解题过程
(1)第一次 while循环中的条件不足,应为surplus >=k
结果:
代码:
//洛谷 P1150 Peter的烟
#include <stdio.h>
int main() {
int n;//Peter原始的烟数目
int k;//k(k>1)个烟蒂可以换一个新烟
int sum=0;//Peter能够吸到的烟数目
int exchange;//可以交换的数目
int surplus;//剩余还没交换的烟数目
//int i = 1;
scanf_s("%d %d", &n, &k);
sum = n;//原始烟数目
exchange = n / k;//可以交换的烟数目
sum = sum + exchange;
surplus = n - exchange * k+ exchange;//剩余的烟数目
while (surplus > k) {
exchange = surplus / k;//交换的烟数目
sum = sum + exchange;
surplus = surplus - exchange * k + exchange;
//printf("执行了第%d次\n", i);
//i++;
}
printf("%d", sum);
return 0;
}
(2)第二次
结果:
代码:
//洛谷 P1150 Peter的烟
#include <stdio.h>
int main() {
int n;//Peter原始的烟数目
int k;//k(k>1)个烟蒂可以换一个新烟
int sum=0;//Peter能够吸到的烟数目
int exchange;//可以交换的数目
int surplus;//剩余还没交换的烟数目
//int i = 1;
scanf("%d %d", &n, &k);
sum = n;//原始烟数目
exchange = n / k;//可以交换的烟数目
sum = sum + exchange;
surplus = n - exchange * k+ exchange;//剩余的烟数目
while (surplus >= k) {
exchange = surplus / k;//交换的烟数目
sum = sum + exchange;
surplus = surplus - exchange * k + exchange;
//printf("执行了第%d次\n", i);
//i++;
}
printf("%d", sum);
return 0;
}