c++大佬帮忙(90)

P1150 Peter 的烟

rgq233666 @ 2017-09-02 10:17:49

#include <iostream>
 using namespace std;
 int main()
 {
  int n,k,a,b,c,c1;
  cin>>n>>k;
  do
  {
  a=n/k;
  b=n%k;
  c1=(a+b)/k;
  c=c1+a+n;
  cout<<c;
  }
  while(a==0);
}

by rgq233666 @ 2017-09-02 10:18:43

不知为何错


by rgq233666 @ 2017-09-02 10:19:57

恳请大佬帮帮忙


by rgq233666 @ 2017-09-02 10:43:02

#include <iostream>
 using namespace std;
 int main()
 {
  int n,k,a,b,c,c1,c2,c3;
  cin>>n>>k;
  do
  {
  a=n/k;
  b=n%k;
  if((a+1)/k!=0)
  {
  c2=(a+1)/k;
  c3=c2/k;
  c=a+n+c2+c3;
  cout<<c;       
  }
  else
  {
  c1=(a+b)/k;
  c=c1+a+n;
  cout<<c;
  }      
  }
  while(a==0);
 }
AC了

by Troywar @ 2017-09-02 10:54:40

您好(首先我是蒟蒻),其实这个思路……存在问题,比如您可以试一下5 6。

然后呢,问题在于,您的代码相当于直接确定了n>k,同时您的码还有一个问题在于缺少了多次满足k的可能,即C1的模数与其除数和仍然大于k,例如n=7,k=2时,答案为13。

核心码就不写了。

希望有所帮助。


by Troywar @ 2017-09-02 11:15:38

测试点太水……您可以试试n=10001 k=2。


|