世野七 发表于 2021-11-7 23:50:43

新手求助

题目是这样的:Peter 有 n n根烟,他每吸完一根烟就把烟蒂保存起来,k(k>1)k(k>1)个烟蒂可以换一个新的烟,那么 Peter 最终能吸到多少根烟呢?

吸烟有害健康。
#include<stdio.h>
int main()
{
int n,k,a,b,s;
scanf("%d%d",&n,&k);
s=n;
while(n>=k)
{
a=n/k;
b=n%k;
s=s+a;n=a+b;
}
printf("%d\n",s);
return 0;
}

我的代码是这样的,最后算出来的结果是错误的。哪里错了

jackz007 发表于 2021-11-8 01:08:41

本帖最后由 jackz007 于 2021-11-8 01:11 编辑

      你根据什么说自己代码是错误的?
      我写的代码和你的代码运算结果是一致的。
#include<stdio.h>
int main()
{
      int k , m , n , s         ;
      scanf("%d%d", & n , & k);
      for(s = m = n ; m > k ;) {
                s += m / k      ; // s : 烟卷总数
                m = m / k + m % k ; // m : 烟头总数
      }
      printf("%d\n" , s)      ;
}
      编译、运行实况:
D:\00.Excise\C>g++ -o x x.c

D:\00.Excise\C>x
40 3
59

D:\00.Excise\C>

世野七 发表于 2021-11-8 12:17:22

jackz007 发表于 2021-11-8 01:08
你根据什么说自己代码是错误的?
      我写的代码和你的代码运算结果是一致的。



感谢感谢,代码确实没错是我电脑的问题

孤舟寒雪 发表于 2021-11-8 17:22:05

#include <stdio.h>
int main (void){
        int n, k, m = 0, n = 0; //m烟头数,n总数
        printf("请输入n k的值\n");
        scanf("%d %d", &n,&k);
       
        while(n){                                //一个一个数好像更直观
                n--, m++, n++ ;                //抽一根烟
                if(m == k){                        //烟把换烟卷
                        m = 0, n++;
                }
        }
        if(m == k-1)                        //如果差一个烟头可以换,当场抽完给老板
                n++;                                 //逗着玩呢 :D
               
        printf("\n%d\n", n);
       
        return 0;
}

傻眼貓咪 发表于 2021-11-8 20:23:16

C代码:#include <stdio.h>

int main()
{
    int n, k, old;
    scanf("%d %d", &n, &k);
    for(int old = n; old >= k; old = (old%k) + (old/k)) n += old/k;
    printf("%d", n);
    return 0;
}C++ 代码:#include <bits/stdc++.h>

int main()
{
    int n, k, old;
    std::cin >> n >> k;
    for(int old = n; old >= k; old = (old%k) + (old/k)) n += old/k;
    std::cout << n << std::endl;
    return 0;
}Python 代码:n, k = map(int, input().split())
res = n
while n >= k:
    res += n//k
    n = (n%k) + (n//k)
print(res)
页: [1]
查看完整版本: 新手求助