标题:怎样去理解这道题的思路
只看楼主
白茶清欢
Rank: 1
等 级:新手上路
帖 子:15
专家分:0
注 册:2018-12-2
结帖率:57.14%
已结贴  问题点数:8 回复次数:2 
怎样去理解这道题的思路
挂盐水的时候,如果滴起来有规律,先是滴一滴,停一下;然后滴二滴,停一 下;再滴三滴,停一下...,现在有一个问题:这瓶盐水一共有VUL毫升,每一滴是D毫升,每一滴的速度是一秒(假设最后一滴不到D毫升,则花费的时间也 算一秒),停一下的时间也是一秒这瓶水什么时候能挂完呢?
输入:
输入数据占一行,由VUL和D组成,其中0< D< VUL< 5000。
输出:
请输出挂完盐水需要的时间。
样例输入:
10 1
样例输出:
13
搜索更多相关主题的帖子: 思路 速度 时间 输入 输出 
2019-01-28 21:30
do8do8do8
Rank: 10Rank: 10Rank: 10
来 自:沙滩
等 级:贵宾
威 望:17
帖 子:366
专家分:1845
注 册:2010-7-2
得分:8 
因一滴就是一秒,所以VUL就至少需要VUL/D+(VUL%D?1:0)秒, VUL/D就是求VUL中有多少滴(每滴含有D毫升),若有剩余就算一秒 (VUL%D?1:0),VUL%D若等于0,就是没有剩余,取0秒,反之有剩余就取1秒,这是三目元算符。
加上暂停的次数total=i+VUL/D+(VUL%D?1:0),就是总共需要的时间:
#include <stdio.h>
#define VUL 10
#define D   1
int main()
{
    int total,i=0;
    int sum=0;
    do
    {
        i++;
        sum=sum+D*i;
        
    }while(sum<VUL);
   
    i--;//i为暂停的次数,在这里减一
    total=i+VUL/D+(VUL%D?1:0);
    printf("total=%d\n",total);
    return 0;
}

[此贴子已经被作者于2019-1-28 23:55编辑过]


学C语言从底层开始,学编程从问题开始,一日学会C!!!
2019-01-28 23:36
机器狗
Rank: 2
等 级:论坛游民
威 望:1
帖 子:6
专家分:14
注 册:2019-1-29
得分:0 
好像与等差数列有关,求停的秒数Sn≤VUL<Sn+1,n-1秒.
2019-01-30 02:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-492870-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 2.078448 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved