【NYOJ】[94]cigarettes

来源:互联网 发布:千牛淘宝助手在哪里 编辑:程序博客网 时间:2024/04/30 07:24

这里写图片描述
这里写图片描述

题目的意思是
Tom现有n根烟 每k个烟蒂能卷一个新烟
求Tom最多能抽多少烟

代码思路是通过模拟抽烟的过程
循环吸烟的过程
跟踪 烟蒂 新烟 的变化
直到没有新烟了
则循环终止

#include<stdio.h>int main() {    int T;    scanf("%d",&T);    while(T--) {        int n,k;        scanf("%d %d",&n,&k);        int sum=0;        int m=0;        while(n) {            sum+=n;            m+=n;            n=0;            n+=m/k;            m-=m/k*k;        }        printf("%d\n",sum);    }    return 0;}

标程的循环更为简便
是把n/k当做现有未抽的新烟
用n记录当前有的烟蒂

#include "stdio.h"#include<fstream>int main() {    //freopen("d:\\1.txt","r",stdin);    //freopen("d:\\2.txt","w",stdout);    int m;    scanf("%d",&m);    while(m--) {        int n,k,sum;        scanf("%d%d",&n,&k);        sum=n;        while(n/k) {            sum+=n/k;            n=n/k+n%k;        }        printf("%d\n",sum);    }    return 0;}

题目地址:【NYOJ】[94]cigarettes

0 0
原创粉丝点击