求助巨佬!数学方法列的式子有点问题qwq

P1150 Peter 的烟

xzjxzjxzj @ 2023-05-16 23:03:29

蒟蒻的思路:(但蒟蒻不知道问题出在哪qwq

1.k根烟蒂=1烟蒂+1烟 ->k-1根烟蒂=1烟

2.设总共抽了x根烟 x-n表示用烟蒂换取的烟的根数

3.又因为最后一根烟蒂用不了,实际上可能用来换烟的烟蒂只有x-1根

4.得出x-n=(x-1)/(k-1) (但是结果不对qwq

求助大佬!

附错误代码

#include<iostream>
using namespace std;

int main()
{
    int n,k;
    cin>>n>>k;
    cout<<(n*k-n-1)/(k-2)<<endl;
    return 0;
}

by impuk @ 2023-05-16 23:24:09

得出x-n=(x-1)/(k-1)

n 移过去变成 x=n+(x-1)/(k-1),所以输出 n+(x-1)/(k-1) 就过了,你式子推的对的,代码写成别的式子了。


by Volmemort_guo @ 2023-05-17 06:55:27

@xzjxzjxzj

n + (n - 1)/(k - 1)

by jijidawang @ 2023-05-17 10:46:21

@impuk x 不是未知数吗


by xzjxzjxzj @ 2023-05-19 23:48:41

@impuk 大佬好!我按照您说的试着写了一下,发现第三个测试点WA了... 肿么办qwq 谢谢大佬!

#include<iostream>
using namespace std;

int main()
{
    int n,k;
    cin>>n>>k;
    int x=n+(x-1)/(k-1); 
    cout<<n+(x-1)/(k-1)<<endl;//错误 
    return 0;
}

by Score_Elevate @ 2023-05-26 22:03:49

@xzjxzjxzj 你试试我这个

#include<bits/stdc++.h>
using namespace std;
int main()
{
   long long n,k;
   cin>>n>>k;
   long long s,m=0,l=n/k;
   s=n+l;
   while(l>=k)
   {
      l-=k;
      m++;
      l++;
   }
   cout<<s+m;
   return 0;
}

by Simon3_14 @ 2023-10-08 08:34:54

萌新求助一下,为什么最后一个烟蒂用不了,即为什么是(x-1)/(k-1),而不是x/k-1


|